
:root{--primary:#1f6f78;--secondary:#f4b860;--background:#f7f7f4;--text:#1f2933;--muted:#64748b;--card:#fff;--soft:#e5e7eb;--danger:#b91c1c;--bqh-accent:#C8A24A;--bqh-accent-dark:#B89032;--bqh-accent-soft:#FFF7E0;--bqh-accent-text:#1f2933}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:Arial,sans-serif;background:var(--background);color:var(--text)}
.app{max-width:540px;margin:0 auto;min-height:100vh;padding:16px}.hero,.module-section,.content-card{background:var(--card);border-radius:24px;box-shadow:0 8px 24px rgba(0,0,0,.08)}
.hero{padding:22px;margin-bottom:14px}.top-row{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;margin-bottom:14px}
.logo-placeholder{min-width:76px;width:auto;max-width:320px;height:110px;border-radius:20px;background:var(--soft);display:flex;align-items:center;justify-content:center;font-size:12px;color:#6b7280;overflow:hidden;flex:0 0 auto}.logo-placeholder img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#fff}.logo-placeholder.logo-loading{background:linear-gradient(110deg,rgba(255,255,255,.55) 8%,rgba(229,231,235,.95) 18%,rgba(255,255,255,.55) 33%);background-size:200% 100%;animation:logoPlaceholderPulse 1.4s ease-in-out infinite}.logo-placeholder-text{font-size:11px;font-weight:700;letter-spacing:.02em;color:#64748b;text-transform:uppercase}@keyframes logoPlaceholderPulse{0%{background-position:100% 0}100%{background-position:-100% 0}}.logo-placeholder:has(.logo-placeholder--initials){background:linear-gradient(145deg,#f1f5f9 0%,#e2e8f0 100%)}.logo-placeholder--initials{font-size:28px;font-weight:800;letter-spacing:.04em;color:#475569;line-height:1;user-select:none}
/* Modal de logo completo en Login (Front). El hover escala la CAJA .logo-placeholder entera, no la img interna: la caja tiene overflow:hidden sobre si misma, y un transform:scale() en la img hija quedaria recortado por ese overflow; escalando el contenedor completo, overflow y contenido crecen juntos y no se recorta nada. */
.logo-placeholder[data-has-logo="true"]{cursor:pointer;transition:transform .18s ease}
.logo-placeholder[data-has-logo="true"]:hover{transform:scale(1.18)}
.business-logo-modal{position:fixed;inset:0;z-index:9999;background:rgba(15,23,42,.55);display:flex;align-items:center;justify-content:center;padding:20px}
.business-logo-modal.hidden{display:none!important}
.business-logo-modal-panel{position:relative;max-width:92vw;max-height:92vh;display:flex}
.business-logo-modal-panel img{max-width:92vw;max-height:92vh;object-fit:contain;border-radius:16px;background:#fff;display:block}
.business-logo-modal-close{position:absolute;top:-14px;right:-14px;width:34px;height:34px;border-radius:999px;border:none;background:#fff;color:#1f2933;font-weight:900;font-size:16px;line-height:1;cursor:pointer;box-shadow:0 4px 14px rgba(0,0,0,.3);display:flex;align-items:center;justify-content:center}
@media(max-width:480px){.business-logo-modal-close{top:-12px;right:-12px;width:30px;height:30px;font-size:14px}}
h1{margin:0 0 6px;font-size:28px;line-height:1.1}.business-type{margin:0;color:var(--muted);font-size:15px}.business-description{margin:12px 0 0;line-height:1.5;color:#475569}
.language-switcher{display:flex;gap:8px}.language-switcher button{border:none;border-radius:999px;padding:10px 14px;cursor:pointer;font-weight:700;background:var(--soft);color:var(--text)}.language-switcher button.active{background:var(--primary);color:white}
.hero-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}.module-nav{display:flex;gap:8px;overflow-x:auto;padding:4px 2px 14px;margin-bottom:4px}.module-nav a{flex:0 0 auto;text-decoration:none;font-size:13px;font-weight:700}
#welcome>.module-nav{margin:18px 0 10px;padding:14px 0 10px;border-top:1px solid rgba(100,116,139,.14);display:grid;grid-template-columns:repeat(2,1fr);justify-content:center;flex-wrap:wrap;overflow-x:visible}
#welcome>.module-nav a:nth-child(odd):last-child{grid-column:1/-1;justify-self:center;width:calc((100% - 8px) / 2)}
.visitor-modules-menu-wrap{margin:0 0 16px;padding:0 2px}
#visitorModulesMenu.visitor-modules-menu{scroll-margin-top:12px;margin:0;padding:16px 10px 12px;gap:10px;border-top:1px solid color-mix(in srgb,var(--bqh-accent) 30%,transparent);border-bottom:1px solid color-mix(in srgb,var(--bqh-accent) 22%,transparent);background:linear-gradient(180deg,rgba(255,255,255,.78) 0%,rgba(255,251,243,.58) 100%);border-radius:18px;display:grid;grid-template-columns:repeat(2,1fr);justify-content:center;flex-wrap:wrap;overflow-x:visible}
#visitorModulesMenu.visitor-modules-menu .visitor-modules-menu-link:nth-child(odd):last-child{grid-column:1/-1;justify-self:center;width:calc((100% - 10px) / 2)}
#visitorModulesMenu.visitor-modules-menu .visitor-modules-menu-link{flex:0 0 auto;text-decoration:none;background:rgba(255,255,255,.96);color:var(--text);border:1.5px solid var(--bqh-accent);border-radius:999px;padding:11px 15px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;line-height:1.2;box-shadow:0 2px 8px color-mix(in srgb,var(--bqh-accent-dark) 14%,transparent),0 1px 2px rgba(15,23,42,.06);-webkit-tap-highlight-color:transparent;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease}
.promotions-active-banner{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;margin:10px 0 0;border:1.5px solid var(--bqh-accent);border-radius:999px;background:var(--bqh-accent-soft);color:var(--text);padding:11px 16px;min-height:44px;font-weight:800;font-size:14px;line-height:1.2;cursor:pointer;-webkit-tap-highlight-color:transparent}
.promotions-active-banner-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--bqh-accent);color:var(--bqh-accent-text);font-size:12px;font-weight:800}
.visitor-back-to-menu-wrap{display:flex;justify-content:center;margin:18px 0 4px;padding-top:14px;border-top:1px solid color-mix(in srgb,var(--bqh-accent) 18%,transparent)}
.visitor-back-to-menu-btn{border:1.5px solid color-mix(in srgb,var(--bqh-accent) 55%,transparent);border-radius:999px;background:rgba(255,255,255,.94);color:var(--text);padding:10px 18px;min-height:44px;font-size:13px;font-weight:800;cursor:pointer;line-height:1.2;box-shadow:0 2px 8px color-mix(in srgb,var(--bqh-accent-dark) 12%,transparent);-webkit-tap-highlight-color:transparent;transition:background .15s ease,border-color .15s ease,box-shadow .15s ease}
.visitor-back-to-menu-btn:active{background:color-mix(in srgb,var(--bqh-accent-soft) 92%,#fff);border-color:var(--bqh-accent-dark)}
.promotion-card-thumbs{display:flex;gap:8px;overflow-x:auto;margin-bottom:10px}
.promotion-card-thumb{flex:0 0 auto;width:64px;height:64px;border-radius:12px;overflow:hidden;border:1px solid rgba(100,116,139,.16);background:var(--soft)}
.promotion-card-thumb img{width:100%;height:100%;object-fit:cover;display:block}
@media(min-width:700px){#promotionsSection .cards-grid .content-card:nth-child(odd):last-child{grid-column:1/-1;justify-self:center;width:calc((100% - 14px) / 2)}}
.promotion-target-link{color:var(--bqh-accent);text-decoration:none;font-weight:700}
.promotion-target-link:hover,.promotion-target-link:focus-visible{text-decoration:underline}
.module-section{padding:18px;margin-bottom:16px}.section-header{margin-bottom:14px}.section-kicker{margin:0 0 4px;color:var(--primary);font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase}.section-title{margin:0 0 6px;font-size:23px}.section-description{margin:0;color:var(--muted);line-height:1.5}
.category-filters{display:flex;gap:8px;overflow-x:auto;margin-bottom:14px;padding-bottom:2px}.category-filter{border:none;border-radius:999px;background:#eef2f7;color:var(--text);padding:9px 12px;font-weight:700;cursor:pointer;white-space:nowrap}.category-filter.active{background:var(--primary);color:white}
.cards-grid{display:grid;grid-template-columns:1fr;gap:14px}.content-card{overflow:hidden;box-shadow:0 5px 16px rgba(0,0,0,.06);border:1px solid rgba(100,116,139,.12)}
.card-media{position:relative;width:100%;height:170px;background:var(--soft);display:flex;align-items:center;justify-content:center;color:#6b7280;overflow:hidden}.card-media img{width:100%;height:100%;object-fit:cover;display:none}.card-media img.active{display:block}
.card-media--placeholder{background:linear-gradient(145deg,#f1f5f9 0%,#e2e8f0 100%)}.card-media-placeholder-icon{font-size:42px;line-height:1;opacity:.72;filter:drop-shadow(0 2px 6px rgba(15,23,42,.08))}.emergency .card-media--placeholder{background:linear-gradient(145deg,#fef2f2 0%,#fee2e2 100%)}.emergency .card-media-placeholder-icon{font-size:46px}
.carousel-controls{position:absolute;left:10px;right:10px;bottom:10px;display:flex;justify-content:center;gap:6px}.carousel-dot{width:8px;height:8px;border-radius:999px;background:rgba(255,255,255,.65);border:1px solid rgba(0,0,0,.16);cursor:pointer}.carousel-dot.active{background:var(--secondary)}
.welcome-carousel-nav{position:absolute;top:50%;left:0;right:0;transform:translateY(-50%);display:flex;justify-content:space-between;padding:0 8px;pointer-events:none}.welcome-carousel-nav button{pointer-events:auto;border:none;background:rgba(255,255,255,.85);border-radius:999px;width:30px;height:30px;font-size:18px;font-weight:900;line-height:1;color:#1f2937;cursor:pointer;box-shadow:0 1px 4px rgba(0,0,0,.2)}
.card-body{padding:15px}.card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}.tag{background:rgba(31,111,120,.10);color:var(--primary);border-radius:999px;padding:5px 8px;font-size:11px;font-weight:800}.category-tag{background:rgba(244,184,96,.22);color:#7c4a03}
.catalog-item-promo-badge{position:absolute;top:28px;right:28px;z-index:1;background:var(--bqh-accent);color:var(--bqh-accent-text);font-weight:800;border-radius:999px;padding:5px 8px;font-size:11px;box-shadow:0 2px 6px rgba(0,0,0,.35)}
.card-title{margin:0 0 8px;font-size:19px}.card-text{margin:0 0 12px;line-height:1.5;color:#475569}.meta-list{display:grid;gap:6px;margin-bottom:12px;color:var(--muted);font-size:13px}.meta-item strong{color:var(--text)}
.actions{display:flex;flex-wrap:wrap;gap:8px}.action-button{text-decoration:none;display:inline-block;font-size:14px}
.emergency .content-card{border-left:5px solid var(--danger)}.experiences .cards-grid{gap:16px;grid-template-columns:1fr}.experiences .category-filters{justify-content:center}.experiences .actions{justify-content:center}.experiences .experience-whatsapp-cta{flex:0 1 auto;width:auto;max-width:240px;padding:7px 16px;text-align:center}.experiences .card-media{height:190px}.system-note{background:#f8fafc;border:1px dashed #cbd5e1;color:#475569;border-radius:16px;padding:12px;font-size:13px;line-height:1.45;margin-bottom:14px}.error-box{background:#fff7ed;border:1px solid #fed7aa;color:#9a3412;padding:14px;border-radius:14px}.footer{text-align:center;font-size:12px;color:#94a3b8;padding:18px 0 8px}
@media(max-width:768px){.experiences>.section-kicker{width:100%;max-width:100%}.experiences>.cards-grid+.section-kicker{margin-top:10px}}
@media(min-width:700px){.app{max-width:920px}.cards-grid{grid-template-columns:repeat(2,1fr)}.experiences .cards-grid{grid-template-columns:repeat(3,1fr)}}


/* V15 guest unit access */
.guest-access-panel{background:var(--card,#fff);border-radius:24px;box-shadow:0 8px 24px rgba(0,0,0,.08);padding:18px;margin-bottom:16px}
.guest-access-panel h2{margin:0 0 6px;font-size:23px}.guest-access-panel p{color:#64748b;line-height:1.5}
.guest-access-form,.experience-comment-form{display:grid;gap:12px;margin-top:12px}
.guest-access-form label,.experience-comment-form label{display:grid;gap:6px;font-weight:700}
.guest-access-form input,.experience-comment-form input,.experience-comment-form textarea{width:100%;border:1px solid #d8dee8;border-radius:12px;padding:12px;font:inherit}
.experience-comment-notice{background:#eef2f7;color:#334155;border-radius:12px;padding:10px 12px;font-size:13px;line-height:1.4}
#experienceCommentFormMsg.visible:not(.input-error){background:#dcfce7;color:#166534;border-radius:12px;padding:10px 12px;font-weight:700;font-size:14px}
#experienceCommentFormMsg.visible.input-error{background:#fee2e2;color:#991b1b;border-radius:12px;padding:10px 12px;font-weight:700;font-size:14px}
.guest-access-form button{cursor:pointer;font-weight:800}
.guest-access-message{margin-top:12px;color:#9a3412;font-weight:700}.unit-info-box{margin-top:14px;background:#f8fafc;border:1px solid #d8dee8;border-radius:18px;padding:14px}
.unit-info-box h3{margin:0 0 8px}.unit-info-grid{display:grid;gap:8px}.unit-info-item{color:#475569}.unit-info-item strong{color:#1f2933}
.wifi-highlight{background:rgba(31,111,120,.08);border:1px solid rgba(31,111,120,.18);border-radius:16px;padding:12px;margin-top:10px}
.guest-wifi-block{margin-bottom:14px}
.guest-wifi-block.hidden{display:none!important}
.guest-wifi-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}
.guest-wifi-row .action-button{padding:8px 12px;font-size:13px}
.hidden{display:none!important}@media(min-width:700px){.guest-access-form{grid-template-columns:1fr 1fr auto;align-items:end}}

/* ===== V16 · Navigation + WhatsApp commerce ===== */
.module-nav{justify-content:center;flex-wrap:wrap;overflow-x:visible}.module-nav a{margin-bottom:4px}.product-catalog{display:grid;grid-template-columns:1fr;gap:14px}.product-card{background:#fff;border:1px solid rgba(100,116,139,.16);border-radius:22px;overflow:hidden;box-shadow:0 5px 16px rgba(0,0,0,.06)}.product-card.unavailable{opacity:.68}.product-image{height:150px;background:var(--soft);display:flex;align-items:center;justify-content:center;color:var(--muted);overflow:hidden}.product-image img{width:100%;height:100%;object-fit:cover}.product-body{padding:14px}.product-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.product-title{margin:0;font-size:18px}.product-price{font-weight:900;color:var(--primary);white-space:nowrap}.availability-badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:12px;font-weight:800;margin:8px 0;background:#dcfce7;color:#166534}.availability-badge.off{background:#fee2e2;color:#991b1b}.product-actions{display:flex;gap:8px;align-items:center;margin-top:12px}.qty-input{width:76px;border:1px solid rgba(100,116,139,.25);border-radius:999px;padding:10px;text-align:center}.order-button{display:inline-flex;justify-content:center;align-items:center;border-radius:999px;padding:10px 14px;background:var(--primary);color:white;text-decoration:none;font-weight:800}.order-button.disabled{background:#cbd5e1;pointer-events:none;color:#64748b}.commerce-helper{font-size:13px;color:var(--muted);line-height:1.45;margin-top:8px}
@media (min-width:640px){.product-catalog{grid-template-columns:repeat(2,1fr)}}


/* ===== V16.2 · UX refinements ===== */
.logo-placeholder{padding:8px}.module-nav{justify-content:center;gap:9px}.category-filters{justify-content:flex-start}.guest-access-form button{min-width:118px}.wifi-highlight h3{font-size:18px;margin-bottom:10px}.wifi-highlight .unit-info-item{font-size:15px;margin:6px 0}.commerce-intro-card{background:#fff;border:1px solid rgba(100,116,139,.14);border-radius:22px;overflow:hidden;box-shadow:0 5px 16px rgba(0,0,0,.06);margin-bottom:14px}.commerce-intro-media{height:190px;background:var(--soft);display:flex;align-items:center;justify-content:center;overflow:hidden}.commerce-intro-media img{width:100%;height:100%;object-fit:cover}.commerce-intro-body{padding:16px}.commerce-intro-body h3{margin:0 0 8px;font-size:21px}.commerce-intro-body p{margin:0 0 14px;color:#475569;line-height:1.5}.catalog-toggle{display:inline-flex;border:none;border-radius:999px;background:var(--primary);color:#fff;font-weight:800;padding:11px 16px;cursor:pointer}.catalog-panel.hidden{display:none}.product-catalog{grid-template-columns:1fr;gap:14px}.product-card{display:grid;grid-template-columns:118px 1fr;min-height:150px}.product-image{height:100%;min-height:150px}.product-body{padding:13px;display:grid;gap:8px}.product-top{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:start}.product-title{font-size:17px;line-height:1.15}.product-price{font-size:15px}.availability-badge{margin:0;width:max-content}.card-text.product-desc{margin:0;color:#475569;line-height:1.35;font-size:14px}.delivery-note{font-size:12px;color:var(--muted);line-height:1.35;background:#f8fafc;border:1px solid rgba(100,116,139,.12);border-radius:12px;padding:8px}.product-actions{margin-top:0}.order-button{padding:10px 12px;min-width:140px}.commerce-helper{display:none}.product-image .carousel-controls{bottom:7px}.product-image .carousel-dot{width:7px;height:7px}
@media (min-width:700px){.product-catalog{grid-template-columns:repeat(2,1fr)}.product-card{grid-template-columns:130px 1fr}.product-image{min-height:170px}}
@media (max-width:430px){.product-card{grid-template-columns:1fr}.product-image{height:170px}.product-actions{flex-wrap:wrap}.order-button{width:100%}.qty-input{width:82px}}


/* ===== V16.2 · Pedido asistido MiniMarket ===== */
.order-summary-panel{background:#fff;border:1px solid rgba(100,116,139,.16);border-radius:22px;padding:14px;margin:0 0 14px;box-shadow:0 5px 16px rgba(0,0,0,.06)}
.order-summary-panel.empty p{margin:6px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.order-summary-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:10px}.order-summary-head button{border:none;background:#eef2f7;border-radius:999px;padding:7px 11px;font-weight:800;color:#334155}.order-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center;border-top:1px solid rgba(100,116,139,.12);padding:10px 0}.order-row span{display:block;color:var(--muted);font-size:13px;margin-top:3px}.order-row-actions{display:flex;align-items:center;gap:7px}.order-row-actions button{border:1px solid rgba(100,116,139,.2);background:#fff;border-radius:999px;width:28px;height:28px;font-weight:900}.order-totals{border-top:1px solid rgba(100,116,139,.14);padding-top:10px;margin-top:4px;display:grid;gap:6px}.order-totals div{display:flex;justify-content:space-between;gap:12px}.order-totals .grand{font-size:17px;color:var(--primary)}.order-wa-missing{color:#b45309!important;font-weight:700}.commerce-helper.visible{display:block!important}.prep-hours-warning{background:#fef3c7!important;color:#92400e!important;font-weight:700!important;padding:6px 10px;border-radius:8px}
.product-actions .order-button{border:none;cursor:pointer}


/* ===== Experiences · modal fullscreen + sticky categories ===== */
.experiences .experiences-category-sticky{position:sticky;top:0;z-index:40;background:var(--card);padding:8px 0 12px;margin:0 -2px 12px;box-shadow:0 4px 14px rgba(0,0,0,.08)}
.experiences>.section-kicker[id]{scroll-margin-top:72px}
.experiences .content-card.experience-card-tap{cursor:pointer}
.experience-modal{position:fixed;inset:0;z-index:120;background:var(--background);overflow-y:auto;-webkit-overflow-scrolling:touch}
.experience-modal.hidden{display:none!important}
.experience-modal-panel{min-height:100%;max-width:540px;margin:0 auto;padding:12px 16px 28px}
.experience-modal-back{display:inline-flex;align-items:center;gap:6px;border:1.5px solid #1f2933;background:transparent;color:#1f2933;border-radius:999px;padding:12px 16px;font-size:17px;font-weight:800;cursor:pointer;margin-bottom:12px}
.experience-modal-media{position:relative;width:100%;min-height:170px;max-height:70vh;background:var(--soft);border-radius:20px;overflow:hidden;margin-bottom:14px;color:#6b7280;display:flex;align-items:center;justify-content:center}
.experience-modal-media img{position:relative;z-index:1;width:100%;height:auto;max-height:70vh;object-fit:contain;display:block}
.experience-modal-media .experience-modal-media-bg{position:absolute;inset:0;z-index:0;width:100%;height:100%;max-height:none;object-fit:cover;filter:blur(20px) brightness(.7);transform:scale(1.15)}
.experience-modal-carousel-nav{position:absolute;left:0;right:0;bottom:10px;z-index:2;display:flex;justify-content:center;align-items:center;gap:12px}
.experience-modal-carousel-nav button{border:none;background:rgba(255,255,255,.92);border-radius:999px;width:36px;height:36px;font-size:20px;font-weight:900;cursor:pointer;line-height:1}
.experience-modal-carousel-nav span{font-weight:800;font-size:13px;background:rgba(255,255,255,.88);border-radius:999px;padding:4px 10px}
.experience-modal-category{margin:0 0 6px;color:var(--primary);font-weight:800;font-size:12px;letter-spacing:.08em;text-transform:uppercase}
.experience-modal-title{margin:0 0 10px;font-size:24px;line-height:1.15}
.experience-modal-provider{margin:0 0 10px;color:#475569;line-height:1.45}
.experience-modal-text{margin:0 0 14px;line-height:1.55;color:#475569}
.experience-modal-body .actions{justify-content:center;margin-top:8px}
@media(min-width:700px){.experience-modal-panel{max-width:720px}.experience-modal-media{max-height:75vh}.experience-modal-media img{max-height:75vh}}
@media(max-width:768px){.experience-modal-media{max-height:60vh}.experience-modal-media img{max-height:60vh}}


/* ===== Mobile grid: catalog-section (2 col) vs service-section (1 col) ===== */
/* catalog-section → experiences, commerce/minimarket, #bar, #restaurant */
/* service-section → info, useful_info, emergency, location, wifi, owners */
@media(max-width:768px){
.catalog-section .cards-grid,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .cards-grid{display:grid;grid-template-columns:1fr 1fr!important;gap:12px;width:100%;max-width:100%}
.catalog-section .content-card,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .content-card{width:100%;max-width:100%;min-width:0}
.catalog-section .card-media,
.catalog-section .card-body,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .card-media,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .card-body{width:100%;max-width:100%}
.catalog-section .card-media,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .card-media{position:relative;display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;height:auto!important;min-height:0;padding:0;line-height:0;overflow:hidden;background:var(--soft)}
.catalog-section .card-media img,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .card-media img{width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center center;display:block}
.catalog-section .card-media img:not(.active),
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .card-media img:not(.active){display:none}
.catalog-section .card-media img.active,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .card-media img.active{display:block}
.catalog-section .card-media>div,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .card-media>div{position:absolute;left:0;right:0;bottom:6px;z-index:1;text-align:center;line-height:normal}
.catalog-section .card-body,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .card-body{padding:10px}
.catalog-section .card-title,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .card-title{font-size:15px;margin-bottom:6px}
.catalog-section .card-text,
:is(.module-section.experiences,.module-section.commerce,#bar,#restaurant) .card-text{font-size:13px;margin-bottom:8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.experiences .experience-whatsapp-cta{max-width:100%;padding:6px 10px;font-size:12px}
.catalog-section .product-catalog,
:is(.module-section.commerce,#minimarket) .product-catalog{display:grid;grid-template-columns:1fr 1fr!important;gap:12px}
.catalog-section .product-card,
:is(.module-section.commerce,#minimarket) .product-card{grid-template-columns:1fr;min-height:0}
.catalog-section .product-image,
:is(.module-section.commerce,#minimarket) .product-image{aspect-ratio:4/3;height:auto!important;min-height:0!important}
.service-section:not(.agenda) .cards-grid,
:is(.module-section.info,.module-section.useful_info,.module-section.emergency,.module-section.location,.module-section.wifi,.module-section.owners) .cards-grid{display:grid;grid-template-columns:1fr!important;gap:14px;width:100%;max-width:100%}
.service-section .content-card,
:is(.module-section.info,.module-section.useful_info,.module-section.emergency,.module-section.location,.module-section.wifi,.module-section.owners) .content-card{width:100%;max-width:100%;min-width:0}
}


/* ===== Catalog image — regla oficial (sin distorsión · ratio 4:3) ===== */
.catalog-section .content-card > .card-media,
.catalog-section .minimarket-product-card > .card-media,
.catalog-section .experience-card-tap > .card-media,
:is(.module-section.experiences,.module-section.commerce,#minimarket,#bar,#restaurant).catalog-section .content-card > .card-media{
  position:relative;
  width:100%;
  aspect-ratio:4/3;
  height:auto!important;
  min-height:0;
  max-height:none;
  padding:0;
  line-height:0;
  overflow:hidden;
  background:var(--soft);
  display:flex;
  align-items:center;
  justify-content:center;
}
.catalog-section .content-card > .card-media img,
.catalog-section .minimarket-product-card > .card-media img,
.catalog-section .experience-card-tap > .card-media img,
:is(.module-section.experiences,.module-section.commerce,#minimarket,#bar,#restaurant).catalog-section .content-card > .card-media img,
.catalog-section .product-image img,
.catalog-section .product-image .card-media img{
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  object-fit:contain;
  object-position:center center;
}
/* Recorte hasta 12% (CATALOG_IMAGE_COVER_CROP_TOLERANCE en app.js, calculado contra el
   ratio fijo 4:3 de la card, no contra el recuadro en pantalla): la foto llena el recuadro
   sin fondo desenfocado; más de 12%: se queda en contain (regla de arriba) con el fondo
   desenfocado detrás. Decisión por foto, calculada en applyCatalogCardImageFitMode(). */
.card-media img.active:not(.catalog-media-bg){
  position:relative;
  z-index:1;
}
.card-media.catalog-media-cover img:not(.catalog-media-bg){
  object-fit:cover!important;
}
.card-media .catalog-media-bg{
  position:absolute;
  inset:0;
  z-index:0;
  width:100%;
  height:100%;
  object-fit:cover;
  filter:blur(20px) brightness(.7);
  transform:scale(1.15);
}
.catalog-section .content-card > .card-media img:not(.active),
.catalog-section .minimarket-product-card > .card-media img:not(.active),
.catalog-section .experience-card-tap > .card-media img:not(.active){
  display:none;
}
.catalog-section .content-card > .card-media img.active,
.catalog-section .minimarket-product-card > .card-media img.active,
.catalog-section .experience-card-tap > .card-media img.active{
  display:block;
  position:absolute;
  inset:0;
}
.catalog-section .content-card > .card-media > div,
.catalog-section .minimarket-product-card > .card-media > div{
  position:absolute;
  left:0;
  right:0;
  bottom:6px;
  z-index:1;
  text-align:center;
  line-height:normal;
}
/* Legacy JSON product cards: misma caja que catálogo Supabase */
.catalog-section .product-card{
  display:flex;
  flex-direction:column;
  grid-template-columns:1fr!important;
  min-height:0;
}
.catalog-section .product-image{
  position:relative;
  width:100%;
  aspect-ratio:4/3;
  height:auto!important;
  min-height:0!important;
  max-height:none;
  overflow:hidden;
  background:var(--soft);
  display:flex;
  align-items:center;
  justify-content:center;
}
.catalog-section .product-image .card-media{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  aspect-ratio:unset;
  display:flex;
  align-items:center;
  justify-content:center;
}
.catalog-section .product-image .card-media img.active{
  position:absolute;
  inset:0;
}

/* Index · role landing */
#businessType{display:none!important}
.role-landing{
  background:var(--card,#fff);
  border-radius:24px;
  box-shadow:0 8px 24px rgba(0,0,0,.08);
  padding:20px 18px 22px;
  margin-bottom:16px;
}
.role-landing h2{
  margin:0 0 6px;
  font-size:23px;
  text-align:center;
}
.role-landing .section-kicker{text-align:center}
.role-landing-grid{
  display:grid;
  gap:16px;
  max-width:520px;
  width:100%;
  margin:18px auto 0;
}
.role-landing-btn{
  width:100%;
  min-height:56px;
  border:none;
  border-radius:16px;
  padding:14px 20px;
  background:var(--primary,#1f6f78);
  color:#fff;
  font-weight:800;
  font-size:17px;
  line-height:1.2;
  cursor:pointer;
  box-shadow:0 2px 8px rgba(31,111,120,.18);
  -webkit-tap-highlight-color:transparent;
  transition:background .15s ease,box-shadow .15s ease,transform .12s ease;
}
.role-landing-btn:hover,
.role-landing-btn:focus-visible{
  background:color-mix(in srgb,var(--primary,#1f6f78) 88%,#000);
  box-shadow:0 4px 12px rgba(31,111,120,.28);
  outline:none;
}
.role-landing-btn:active{transform:scale(.99)}
@media(min-width:700px){
  .role-landing-grid{gap:18px}
  .role-landing-btn{min-height:58px}
}


/* ===== Agenda V1 · front views ===== */
.agenda-front{margin-top:4px}
.agenda-view-tabs{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-bottom:14px;width:100%}
.agenda-view-tab{border:none;border-radius:999px;padding:9px 16px;font-weight:800;cursor:pointer;transition:background .15s ease,color .15s ease,box-shadow .15s ease}
.agenda-view-tab--list{background:rgba(31,111,120,.14);color:#1f6f78}
.agenda-view-tab--list:hover{background:rgba(31,111,120,.24)}
.agenda-view-tab--list.active{background:var(--primary);color:#fff;box-shadow:0 2px 8px rgba(31,111,120,.28)}
.agenda-view-tab--week{background:rgba(37,99,235,.14);color:#1d4ed8}
.agenda-view-tab--week:hover{background:rgba(37,99,235,.24)}
.agenda-view-tab--week.active{background:#2563eb;color:#fff;box-shadow:0 2px 8px rgba(37,99,235,.28)}
.agenda-view-tab--month{background:rgba(217,119,6,.16);color:#b45309}
.agenda-view-tab--month:hover{background:rgba(217,119,6,.26)}
.agenda-view-tab--month.active{background:#d97706;color:#fff;box-shadow:0 2px 8px rgba(217,119,6,.28)}
.agenda-day-heading{margin:0 0 10px;font-size:18px}
.agenda-day-group{margin-bottom:18px}
.agenda-events-grid,
.module-section.agenda .agenda-events-grid,
#agenda .agenda-events-grid{display:grid;grid-template-columns:1fr;gap:16px;width:100%;max-width:100%}
.agenda-event-card,
.module-section.agenda .agenda-event-card,
#agenda .agenda-event-card{width:100%;max-width:100%;min-width:0}
.agenda-event-card{background:#fff;border:1px solid rgba(100,116,139,.14);border-radius:18px;overflow:hidden;box-shadow:0 4px 14px rgba(0,0,0,.05)}
.agenda-event-card .card-media{height:150px}
.agenda-event-card .card-body{padding:14px}
.agenda-event-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
.agenda-event-time{font-weight:900;color:var(--primary);font-size:14px}
.agenda-status-badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800}
.agenda-status--reservation_open{background:#fef3c7;color:#92400e}
.agenda-status--confirmed{background:#dcfce7;color:#166534}
.agenda-status--cancelled{background:#fee2e2;color:#991b1b}
.agenda-event-location{margin:0 0 8px;color:#475569;font-size:14px}
.agenda-event-desc{margin:0 0 10px;color:#64748b;font-size:13px;line-height:1.45;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.agenda-reservation-note{margin:8px 0 0;font-size:12px;color:#64748b;line-height:1.4;background:#f8fafc;border-radius:12px;padding:8px 10px}
.agenda-reservation-note.agenda-reservation-success{background:#dcfce7;color:#166534;font-weight:700}
.agenda-recurring-date-select{margin-left:28px}
.agenda-reservation-note.agenda-reservation-highlight{font-weight:700}
.agenda-reserve-btn[disabled]{opacity:.72;cursor:not-allowed}
.agenda-cal-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.agenda-cal-nav button{border:none;background:#eef2f7;border-radius:999px;padding:8px 12px;font-weight:800;cursor:pointer}
.agenda-cal-title{font-weight:800;font-size:15px;text-align:center;flex:1}
.agenda-week-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px;margin-bottom:14px}
.agenda-week-day{border:1px solid rgba(100,116,139,.14);border-radius:14px;padding:8px 6px;text-align:center;background:#fff;cursor:pointer;min-height:72px}
.agenda-week-day.has-events{border-color:rgba(31,111,120,.35);background:rgba(31,111,120,.04)}
.agenda-week-day.selected,.agenda-month-day.selected{outline:2px solid var(--primary);outline-offset:1px}
.agenda-week-dow{font-size:10px;font-weight:800;color:var(--muted);text-transform:uppercase}
.agenda-week-num{font-size:18px;font-weight:900;margin:4px 0}
.agenda-week-dot{width:8px;height:8px;border-radius:999px;background:var(--primary);margin:4px auto 0}
.agenda-month-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px;margin-bottom:14px}
.agenda-month-dow{font-size:10px;font-weight:800;color:var(--muted);text-align:center;padding:4px 0}
.agenda-month-day{border:none;border-radius:10px;background:#fff;padding:8px 4px;min-height:44px;cursor:pointer;position:relative;font-weight:700}
.agenda-month-day.outside{opacity:.35}
.agenda-month-day.has-events{background:rgba(31,111,120,.08)}
.agenda-month-dot{position:absolute;bottom:4px;left:50%;transform:translateX(-50%);width:6px;height:6px;border-radius:999px;background:var(--primary)}
.agenda-day-detail{margin-top:12px}
@media(min-width:760px){
  .agenda-events-grid,
  .module-section.agenda .agenda-events-grid,
  #agenda .agenda-events-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}


/* ===== CMS · botones «Nuevo» (admin.html · .admin-app) ===== */
.admin-app .btn-new,
.admin-app button.btn-new,
.admin-app button[data-action="new"],
.admin-app button[data-catalog-new-item],
#agendaNewBtn,
#catalogExpNewBtn,
#welcomeContentNewBtn,
#locationContentNewBtn,
#usefulInfoContentNewBtn,
#servicesHoursContentNewBtn,
#commonWifiContentNewBtn,
#emergencyContentNewBtn,
#catalogCatAddBtn,
#catalogMinimarketNewProductBtn,
#addCategoryBtn.btn-new{
  background:#1f7f8a!important;
  color:#fff!important;
  border:0!important;
  border-radius:999px;
  font-weight:700;
  padding:11px 15px;
  cursor:pointer;
}
.admin-app .btn-new:hover:not(:disabled),
.admin-app button.btn-new:hover:not(:disabled),
.admin-app button[data-action="new"]:hover:not(:disabled),
.admin-app button[data-catalog-new-item]:hover:not(:disabled),
#agendaNewBtn:hover:not(:disabled),
#catalogExpNewBtn:hover:not(:disabled),
#welcomeContentNewBtn:hover:not(:disabled),
#locationContentNewBtn:hover:not(:disabled),
#usefulInfoContentNewBtn:hover:not(:disabled),
#servicesHoursContentNewBtn:hover:not(:disabled),
#commonWifiContentNewBtn:hover:not(:disabled),
#emergencyContentNewBtn:hover:not(:disabled),
#catalogCatAddBtn:hover:not(:disabled),
#catalogMinimarketNewProductBtn:hover:not(:disabled),
#addCategoryBtn.btn-new:hover:not(:disabled){
  background:#176b75!important;
}
.admin-app .btn-new:disabled,
.admin-app button.btn-new:disabled,
.admin-app button[data-action="new"]:disabled,
.admin-app button[data-catalog-new-item]:disabled{
  opacity:.55;
  cursor:not-allowed;
}

/* ===== Index · gold pill system (Fase A) ===== */
.guest-access-form button,
#moduleNav.module-nav a,
.action-button{
  border:1.5px solid var(--bqh-accent);
  border-radius:999px;
  min-height:44px;
  padding:11px 16px;
  font-weight:800;
  line-height:1.2;
  cursor:pointer;
  text-align:center;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:var(--text);
  background:rgba(255,255,255,.96);
  box-shadow:0 2px 8px color-mix(in srgb,var(--bqh-accent-dark) 14%,transparent),0 1px 2px rgba(15,23,42,.06);
  -webkit-tap-highlight-color:transparent;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease,color .15s ease;
}
.action-button:not(.secondary){
  background:transparent;
  color:var(--bqh-accent-dark);
  border:1.5px solid var(--bqh-accent);
}
#moduleNav.module-nav a{
  flex:0 0 auto;
  font-size:13px;
  padding:11px 15px;
}
.guest-access-form button{
  min-width:118px;
  padding:12px 16px;
}
.action-button{
  font-size:14px;
  padding:10px 14px;
}
.guest-access-form button:hover,
.guest-access-form button:focus-visible,
#moduleNav.module-nav a:hover,
#moduleNav.module-nav a:focus-visible,
.action-button:hover,
.action-button:focus-visible{
  background:var(--bqh-accent-soft);
  border-color:var(--bqh-accent-dark);
  box-shadow:0 4px 14px color-mix(in srgb,var(--bqh-accent-dark) 22%,transparent);
  outline:none;
}
.action-button:not(.secondary):hover,
.action-button:not(.secondary):focus-visible{
  background:color-mix(in srgb,var(--bqh-accent) 8%,transparent);
  border-color:var(--bqh-accent-dark);
  color:var(--bqh-accent-dark);
}
.guest-access-form button:active,
#moduleNav.module-nav a:active,
.action-button:active{
  background:color-mix(in srgb,var(--bqh-accent-soft) 95%,#fff);
  border-color:var(--bqh-accent-dark);
  transform:scale(.98);
}
.action-button:not(.secondary):active{
  background:color-mix(in srgb,var(--bqh-accent) 16%,transparent);
  border-color:var(--bqh-accent-dark);
  color:var(--bqh-accent-dark);
}

/* ===== Index · WhatsApp CTAs (brand green — overrides gold pill) ===== */
:is(.app,.experience-modal) a.experience-whatsapp-cta,
:is(.app,.experience-modal) a.whatsapp-button:not(.order-button):not(.order-whatsapp-submit),
:is(.app,.experience-modal) a.action-button[href*="wa.me"],
:is(.app,.experience-modal) a.action-button[href*="api.whatsapp.com"],
:is(.app,.experience-modal) a.action-button[href*="whatsapp.com"]{
  background:transparent!important;
  border:1.5px solid #25D366!important;
  color:#1DA851!important;
  border-radius:999px;
  min-height:44px;
  box-shadow:none;
}
:is(.app,.experience-modal) a.experience-whatsapp-cta:hover,
:is(.app,.experience-modal) a.experience-whatsapp-cta:focus-visible,
:is(.app,.experience-modal) a.whatsapp-button:not(.order-button):hover,
:is(.app,.experience-modal) a.whatsapp-button:not(.order-button):focus-visible,
:is(.app,.experience-modal) a.action-button[href*="wa.me"]:hover,
:is(.app,.experience-modal) a.action-button[href*="wa.me"]:focus-visible,
:is(.app,.experience-modal) a.action-button[href*="api.whatsapp.com"]:hover,
:is(.app,.experience-modal) a.action-button[href*="api.whatsapp.com"]:focus-visible,
:is(.app,.experience-modal) a.action-button[href*="whatsapp.com"]:hover,
:is(.app,.experience-modal) a.action-button[href*="whatsapp.com"]:focus-visible{
  background:rgba(37,211,102,.08)!important;
  border-color:#1DA851!important;
  color:#1DA851!important;
  box-shadow:0 4px 14px rgba(37,211,102,.18)!important;
  outline:none;
}
:is(.app,.experience-modal) a.experience-whatsapp-cta:active,
:is(.app,.experience-modal) a.whatsapp-button:not(.order-button):active,
:is(.app,.experience-modal) a.action-button[href*="wa.me"]:active,
:is(.app,.experience-modal) a.action-button[href*="api.whatsapp.com"]:active,
:is(.app,.experience-modal) a.action-button[href*="whatsapp.com"]:active{
  background:rgba(37,211,102,.16)!important;
  border-color:#1DA851!important;
  color:#1DA851!important;
  transform:scale(.98);
}

:is(.app,.experience-modal) a.action-button.promotion-whatsapp-cta{
  background:transparent!important;
  border:1.5px solid var(--bqh-accent)!important;
  color:var(--bqh-accent-dark)!important;
  border-radius:999px;
  box-shadow:none;
}
:is(.app,.experience-modal) a.action-button.promotion-whatsapp-cta:hover,
:is(.app,.experience-modal) a.action-button.promotion-whatsapp-cta:focus-visible{
  background:color-mix(in srgb,var(--bqh-accent) 8%,transparent)!important;
  border-color:var(--bqh-accent-dark)!important;
  color:var(--bqh-accent-dark)!important;
  box-shadow:0 4px 14px color-mix(in srgb,var(--bqh-accent-dark) 22%,transparent)!important;
  outline:none;
}
:is(.app,.experience-modal) a.action-button.promotion-whatsapp-cta:active{
  background:color-mix(in srgb,var(--bqh-accent) 16%,transparent)!important;
  border-color:var(--bqh-accent-dark)!important;
  color:var(--bqh-accent-dark)!important;
  transform:scale(.98);
}

/* ===== Index · Order summary · final WhatsApp submit (order-whatsapp-submit only) ===== */
.app .order-summary-panel .order-whatsapp-submit,
:is(.app,.experience-modal) .order-summary-panel .order-whatsapp-submit{
  width:min(100%,520px)!important;
  max-width:520px!important;
  margin:0.75rem auto 0!important;
  min-height:40px!important;
  height:auto!important;
  padding:0.55rem 1rem!important;
  font-size:0.875rem!important;
  line-height:1.15!important;
  font-weight:700!important;
  border-radius:999px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  box-sizing:border-box!important;
  text-decoration:none!important;
  text-align:center!important;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease,color .15s ease;
}
.app .order-summary-panel a.order-whatsapp-submit,
:is(.app,.experience-modal) .order-summary-panel a.order-whatsapp-submit{
  background:#25D366!important;
  border:1.5px solid #128C7E!important;
  color:#fff!important;
  box-shadow:0 1px 3px rgba(18,140,126,.16)!important;
}
.app .order-summary-panel a.order-whatsapp-submit:hover,
.app .order-summary-panel a.order-whatsapp-submit:focus-visible,
:is(.app,.experience-modal) .order-summary-panel a.order-whatsapp-submit:hover,
:is(.app,.experience-modal) .order-summary-panel a.order-whatsapp-submit:focus-visible{
  background:#128C7E!important;
  border-color:#0f766e!important;
  color:#fff!important;
  box-shadow:0 2px 6px rgba(18,140,126,.22)!important;
  outline:none;
}
.app .order-summary-panel a.order-whatsapp-submit:active,
:is(.app,.experience-modal) .order-summary-panel a.order-whatsapp-submit:active{
  background:#0f766e!important;
  border-color:#0d6559!important;
  color:#fff!important;
  transform:scale(.98);
}
.app .order-summary-panel button.order-whatsapp-submit.disabled,
.app .order-summary-panel button.order-whatsapp-submit:disabled,
:is(.app,.experience-modal) .order-summary-panel button.order-whatsapp-submit.disabled,
:is(.app,.experience-modal) .order-summary-panel button.order-whatsapp-submit:disabled{
  background:#94a3b8!important;
  border:1.5px solid #94a3b8!important;
  color:#fff!important;
  cursor:not-allowed!important;
  pointer-events:none!important;
  box-shadow:none!important;
}

/* ===== Index · Visitor modules menu (Spirit gold accent) ===== */
#visitorModulesMenu.visitor-modules-menu .visitor-modules-menu-link:hover,
#visitorModulesMenu.visitor-modules-menu .visitor-modules-menu-link:focus-visible{
  background:var(--bqh-accent-soft);
  border-color:var(--bqh-accent-dark);
  box-shadow:0 4px 14px color-mix(in srgb,var(--bqh-accent-dark) 22%,transparent);
  outline:none;
}
#visitorModulesMenu.visitor-modules-menu .visitor-modules-menu-link:active{
  background:color-mix(in srgb,var(--bqh-accent-soft) 95%,#fff);
  border-color:var(--bqh-accent-dark);
  transform:scale(.98);
}
.visitor-back-to-menu-btn:hover,
.visitor-back-to-menu-btn:focus-visible{
  background:var(--bqh-accent-soft);
  border-color:var(--bqh-accent-dark);
  box-shadow:0 4px 12px color-mix(in srgb,var(--bqh-accent-dark) 18%,transparent);
  outline:none;
}
@media (max-width:430px){
  #visitorModulesMenu.visitor-modules-menu{
    padding:14px 8px 10px;
    gap:8px;
  }
  #visitorModulesMenu.visitor-modules-menu .visitor-modules-menu-link{
    padding:12px 14px;
    font-size:14px;
  }
}

/* ===== Index · Experiences category filters (Spirit gold accent) ===== */
.experiences .experiences-category-sticky{
  position:sticky;
  top:0;
  z-index:40;
  padding:10px 8px 12px;
  margin:0 -2px 12px;
  background:linear-gradient(180deg,rgba(255,255,255,.78) 0%,rgba(255,251,243,.58) 100%);
  border-radius:16px;
  border-top:1px solid color-mix(in srgb,var(--bqh-accent) 24%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--bqh-accent) 16%,transparent);
  box-shadow:0 2px 10px color-mix(in srgb,var(--bqh-accent-dark) 8%,transparent);
}
.experiences .category-filters{
  justify-content:center;
  flex-wrap:wrap;
  overflow-x:visible;
  gap:10px;
  padding-bottom:4px;
  margin-bottom:8px;
}
.experiences .category-filters:last-child{
  margin-bottom:0;
}
.experiences .category-filter{
  border:1.5px solid var(--bqh-accent);
  background:rgba(255,255,255,.96);
  color:var(--text);
  border-radius:999px;
  padding:11px 15px;
  min-height:44px;
  font-weight:800;
  font-size:13px;
  line-height:1.2;
  white-space:normal;
  text-align:center;
  box-shadow:0 2px 8px color-mix(in srgb,var(--bqh-accent-dark) 12%,transparent),0 1px 2px rgba(15,23,42,.05);
  -webkit-tap-highlight-color:transparent;
  transition:background .15s ease,border-color .15s ease,box-shadow .15s ease,transform .12s ease;
}
.experiences .category-filter:hover,
.experiences .category-filter:focus-visible{
  background:var(--bqh-accent-soft);
  border-color:var(--bqh-accent-dark);
  box-shadow:0 4px 14px color-mix(in srgb,var(--bqh-accent-dark) 20%,transparent);
  outline:none;
}
.experiences .category-filter:active{
  background:color-mix(in srgb,var(--bqh-accent-soft) 95%,#fff);
  border-color:var(--bqh-accent-dark);
  transform:scale(.98);
}
.experiences .category-filter.active{
  background:var(--bqh-accent-soft);
  border-color:var(--bqh-accent-dark);
  color:var(--text);
  box-shadow:0 3px 12px color-mix(in srgb,var(--bqh-accent-dark) 24%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--bqh-accent-dark) 12%,transparent);
}
@media (max-width:430px){
  .experiences .category-filters{
    gap:8px;
  }
  .experiences .category-filter{
    padding:12px 14px;
    font-size:14px;
  }
}

/* ===== Index · Welcome card (legible text + natural image ratio) ===== */
#welcome .content-card > .card-media,
#visitor-section-welcome .content-card > .card-media{
  position:relative;
  height:auto;
  min-height:0;
  max-height:none;
  padding:12px 12px 8px;
  background:linear-gradient(180deg,#f8fafc 0%,#fff 100%);
  display:flex;
  align-items:center;
  justify-content:center;
  overflow:hidden;
}
#welcome .content-card > .card-media img,
#visitor-section-welcome .content-card > .card-media img{
  position:relative;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:min(440px,78vw);
  object-fit:contain;
  object-position:center center;
  border-radius:16px;
  display:none;
}
#welcome .content-card > .card-media img.active,
#visitor-section-welcome .content-card > .card-media img.active{
  display:block;
}
#welcome .content-card > .card-media.card-media--placeholder,
#visitor-section-welcome .content-card > .card-media.card-media--placeholder{
  min-height:168px;
  padding:18px 12px;
}
#welcome .card-text,
#visitor-section-welcome .card-text{
  line-height:1.6;
  white-space:pre-line;
  margin-bottom:14px;
  color:#334155;
}
#welcome .section-description,
#visitor-section-welcome .section-description{
  line-height:1.6;
  white-space:pre-line;
}
@media (max-width:430px){
  #welcome .content-card > .card-media,
  #visitor-section-welcome .content-card > .card-media{
    padding:10px 10px 6px;
  }
  #welcome .content-card > .card-media img,
  #visitor-section-welcome .content-card > .card-media img{
    max-height:min(380px,82vw);
    border-radius:14px;
  }
  #welcome .card-text,
  #visitor-section-welcome .card-text{
    font-size:15px;
    line-height:1.62;
  }
}

/* ===== Catalog · view more + category preview ===== */
.catalog-view-more-btn{
  border:1.5px solid color-mix(in srgb,var(--primary) 38%,#cbd5e1);
  background:rgba(255,255,255,.98);
  color:var(--primary);
  font-weight:800;
  font-size:12px;
  padding:6px 12px;
  border-radius:999px;
  cursor:pointer;
  text-decoration:none;
  text-underline-offset:0;
  white-space:nowrap;
  line-height:1.2;
  min-height:32px;
  box-shadow:0 1px 5px rgba(15,23,42,.07);
}
.catalog-view-more-btn:hover,
.catalog-view-more-btn:focus-visible{
  color:#155e66;
  border-color:color-mix(in srgb,var(--primary) 55%,#94a3b8);
  background:color-mix(in srgb,var(--primary) 6%,#fff);
  outline:none;
}
.catalog-category-preview-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  flex-wrap:wrap;
  margin:12px 0 8px;
}
.catalog-category-preview-head .section-kicker{
  margin:0;
}
.catalog-view-category-btn,
.catalog-category-back-btn{
  border:1.5px solid var(--bqh-accent,#c9a227);
  border-radius:999px;
  background:rgba(255,255,255,.96);
  color:var(--text);
  font-weight:800;
  font-size:13px;
  padding:8px 14px;
  cursor:pointer;
  box-shadow:0 2px 8px color-mix(in srgb,var(--bqh-accent-dark,#a8841a) 12%,transparent);
}
.catalog-view-category-btn:hover,
.catalog-view-category-btn:focus-visible,
.catalog-category-back-btn:hover,
.catalog-category-back-btn:focus-visible{
  background:var(--bqh-accent-soft,#faf3df);
  border-color:var(--bqh-accent-dark,#a8841a);
  outline:none;
}
.catalog-category-back{
  margin:0 0 12px;
}
.catalog-item-card .card-body{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  column-gap:8px;
  row-gap:6px;
  align-items:center;
}
.catalog-item-card .card-body>.card-title{
  grid-column:1/-1;
}
.catalog-item-card .card-body>.meta-list{
  grid-column:1;
  margin-bottom:0;
  align-self:center;
}
.catalog-item-card .card-body>.actions{
  grid-column:2;
  justify-content:flex-end;
  align-self:center;
  margin-top:0;
}
.catalog-item-card .card-body>.product-qty-stepper,
.catalog-item-card .card-body>.commerce-helper.visible{
  grid-column:1/-1;
  width:100%;
}
.catalog-item-card .card-body>a.promotion-whatsapp-cta{
  grid-column:1/-1;
  width:100%;
}
.qty-stepper-label{
  display:inline-block;
  grid-column:1/-1;
  justify-self:start;
  margin:2px 0;
  text-align:left;
  background:rgba(31,111,120,.10);
  color:var(--primary);
  font-weight:800;
  font-size:12px;
  letter-spacing:.02em;
  padding:4px 10px;
  border-radius:999px;
}
:is(.module-section.experiences,#experiences).catalog-section .catalog-item-card:not(.catalog-order-card) .card-body>.actions{
  grid-column:1/-1;
  justify-content:center;
  flex-wrap:wrap;
  gap:8px;
}
@media (max-width:768px){
  .catalog-section .catalog-view-more-btn{
    font-size:11px;
    padding:5px 10px;
    min-height:30px;
  }
  .catalog-item-card{
    display:flex;
    flex-direction:column;
  }
  .catalog-item-card .card-body{
    display:flex;
    flex-direction:column;
    flex:1;
  }
  .catalog-item-card .card-body>.qty-stepper-label{
    margin-top:auto;
    align-self:flex-start;
  }
}
.front-toast-banner{
  position:fixed;
  left:50%;
  bottom:24px;
  transform:translateX(-50%) translateY(12px);
  background:var(--primary);
  color:#fff;
  padding:10px 18px;
  border-radius:999px;
  font-weight:700;
  font-size:13px;
  box-shadow:0 4px 14px rgba(0,0,0,.18);
  opacity:0;
  pointer-events:none;
  transition:opacity .2s ease, transform .2s ease;
  z-index:9999;
  max-width:90vw;
  text-align:center;
}
.front-toast-banner.visible{
  opacity:1;
  transform:translateX(-50%) translateY(0);
}
.front-confirm-modal{
  position:fixed;
  inset:0;
  background:rgba(15,23,42,.55);
  display:none;
  align-items:center;
  justify-content:center;
  padding:20px;
  z-index:9999;
}
.front-confirm-modal.visible{
  display:flex;
}
.front-confirm-modal-box{
  background:#fff;
  border-radius:20px;
  padding:22px 20px;
  max-width:360px;
  width:100%;
  max-height:85vh;
  overflow-y:auto;
  box-shadow:0 10px 30px rgba(0,0,0,.25);
  text-align:center;
}
.front-confirm-modal-box h3{
  margin:0 0 10px;
  font-size:19px;
  color:var(--text);
}
.front-confirm-modal-box p{
  margin:0 0 18px;
  color:#475569;
  line-height:1.45;
}
.front-confirm-modal-actions{
  display:flex;
  gap:10px;
}
.front-confirm-modal-actions button{
  flex:1;
  border-radius:999px;
  padding:11px 14px;
  font-weight:800;
  font-size:14px;
  cursor:pointer;
}
#frontConfirmModalCancel{
  border:1.5px solid #1f2933;
  background:transparent;
  color:#1f2933;
}
#frontConfirmModalConfirm{
  border:none;
  background:var(--primary);
  color:#fff;
}
.front-confirm-modal.whatsapp-style .front-confirm-modal-actions{
  flex-direction:column;
}
.front-confirm-modal.whatsapp-style #frontConfirmModalConfirm{
  background:transparent;
  border:1.5px solid #25D366;
  color:#1DA851;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
}

/* Conector Vista Previa (Repositorio de Conectores) — Contenido (Destacado/Bienvenida/etc.): diseño aprobado antes del 27/9/2026, ampliada dentro del panel grande del CMS */
.bqh-preview-mode.bqh-preview-kind-content .app{max-width:none;width:88%;margin:0 auto;padding:28px 0}
.bqh-preview-mode.bqh-preview-kind-content .card-media{height:min(48vh,460px)}
.bqh-preview-mode.bqh-preview-kind-content .card-title{font-size:30px}
.bqh-preview-mode.bqh-preview-kind-content .card-text{font-size:19px;line-height:1.6}
.bqh-preview-mode.bqh-preview-kind-content .meta-list{font-size:16px}

/* Conector Vista Previa — Catálogo: se ve con ancho de celular (27/9/2026), sin afectar Contenido */
.bqh-preview-mode.bqh-preview-kind-catalog .app{max-width:470px;width:100%;margin:0 auto;padding:16px}
.bqh-preview-mode.bqh-preview-kind-catalog .experience-modal-panel{max-width:360px}
