/* v30.32.111 — Promotions: offer cards, slim strips, product ads, the offer
   pop-up and the "Offers & gifts" wallet card. Brand tokens only; buttons use
   the site standard (.tap-btn.tap-btn-primary: 44px, 14px/600, pill). Plain
   and readable: no glow, gradient or animation beyond a short fade. */

.tap-promo-slot{margin:0;padding:0}
.tap-promo-slot__in{display:grid;gap:12px;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}
.tap-promo-slot__in:empty{display:none}
.tap-promo-slot--home .tap-promo-slot__in,.tap-promo-slot--listing .tap-promo-slot__in{margin:16px auto}

.tap-promo:not([data-tap-promo-slider]){position:relative;display:flex;align-items:stretch;gap:0;min-width:0;border-radius:16px;overflow:hidden;
	background:#f5f0f8;color:#241233;border:1px solid #e6dcef;font-family:var(--tap-font-body,'Sora',system-ui,sans-serif)}
.tap-promo--saffron{background:#fff3e8;border-color:#ffd9b8}
.tap-promo--purple{background:#3b0f63;border-color:#3b0f63;color:#fff}
.tap-promo__media{flex:0 0 38%;max-width:220px;background:#ece3f3}
.tap-promo__media img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:1/1}
.tap-promo:not([data-tap-promo-slider]) .tap-promo__body{flex:1 1 auto;min-width:0;display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:16px}
.tap-promo__badge{display:inline-block;padding:3px 10px;border-radius:999px;background:#ff7a1a;color:#241233;font-size:12px;font-weight:600;line-height:1.4}
.tap-promo--purple .tap-promo__badge{background:#ffb066}
.tap-promo__title{margin:0;font-family:var(--tap-font-heading,'Manrope',system-ui,sans-serif);font-size:18px;font-weight:700;line-height:1.3;color:inherit;overflow-wrap:anywhere}
.tap-promo__text{margin:0;font-size:14px;line-height:1.5;color:#4a3a5c;overflow-wrap:anywhere}
.tap-promo--purple .tap-promo__text{color:#e9dcf5}
.tap-promo__price{margin:0;font-size:16px;font-weight:700;color:inherit}
.tap-promo__timer{margin:0;font-size:12px;font-weight:600;color:#9a4300}
.tap-promo--purple .tap-promo__timer{color:#ffd2a8}
.tap-promo:not([data-tap-promo-slider]) .tap-promo__cta{margin-top:auto;position:static}
/* Whole card is the link target (stretched link), one real <a> for a11y. */
.tap-promo:not([data-tap-promo-slider]) .tap-promo__cta::after{content:"";position:absolute;inset:0;z-index:1}
.tap-promo:not([data-tap-promo-slider]) .tap-promo__cta:focus-visible{outline:2px solid #4d1279;outline-offset:2px}

/* Slim strip: one line on desktop, two on phones. */
.tap-promo--strip{align-items:center;border-radius:12px}
.tap-promo--strip .tap-promo__media{flex:0 0 56px;max-width:56px;align-self:center;margin:8px 0 8px 12px;border-radius:10px;overflow:hidden}
.tap-promo--strip .tap-promo__body{flex-direction:row;flex-wrap:wrap;align-items:center;gap:6px 12px;padding:10px 14px}
.tap-promo--strip .tap-promo__title{font-size:15px}
.tap-promo--strip .tap-promo__text{font-size:13px;flex:1 1 220px}
.tap-promo--strip .tap-promo__cta{margin:0 0 0 auto}

/* Store product ad: square image on top on phones, side on wider screens. */
.tap-promo--product .tap-promo__media{background:#fff}
.tap-promo--product .tap-promo__media img{object-fit:contain;padding:8px}

/* Offer pop-up: a small card, never covering the page. */
.tap-promo-float{position:fixed;z-index:9990;left:20px;bottom:20px;width:min(380px,calc(100vw - 40px));opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease}
.tap-promo-float.is-open{opacity:1;transform:none}
.tap-promo-float .tap-container{padding:0 !important;max-width:none !important;margin:0 !important}
.tap-promo-float .tap-promo-slot__in{display:block}
.tap-promo-float .tap-promo-slot__in > .tap-promo + .tap-promo{display:none}
.tap-promo-float .tap-promo{box-shadow:0 8px 28px rgba(36,18,51,.18)}
.tap-promo-float .tap-promo__media{flex-basis:34%}
.tap-promo-float .tap-promo__body{padding:14px 40px 14px 14px}
.tap-promo-float__x{position:absolute;top:6px;right:6px;z-index:3;width:32px;height:32px;border:0;border-radius:999px;background:rgba(255,255,255,.9);color:#241233;font-size:20px;line-height:32px;text-align:center;cursor:pointer;padding:0}
.tap-promo-float__x:focus-visible{outline:2px solid #4d1279}

/* Wallet "Offers & gifts" card (My Bookings, Wallet, thank-you screen). */
.tap-promo-me{margin:12px 0 16px;padding:16px;border:1px solid #e6dcef;border-radius:16px;background:#fff;color:#241233;font-family:var(--tap-font-body,'Sora',system-ui,sans-serif)}
.tap-promo-me__h{margin:0 0 10px;font-family:var(--tap-font-heading,'Manrope',system-ui,sans-serif);font-size:16px;font-weight:700}
.tap-promo-me__bal{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;margin:0 0 12px;padding:12px;border-radius:12px;background:#fff3e8}
.tap-promo-me__bal strong{font-size:20px}
.tap-promo-me__bal small{font-size:13px;color:#9a4300}
.tap-promo-me__form{display:flex;gap:8px;margin:0}
.tap-promo-me__form input{flex:1 1 auto;min-width:0;height:44px;padding:0 14px;border:1px solid #d8cbe0;border-radius:999px;font:inherit;font-size:14px;text-transform:uppercase;letter-spacing:.04em;color:#241233;background:#fff}
.tap-promo-me__form input:focus{outline:2px solid #4d1279;outline-offset:1px}
.tap-promo-me__msg{margin:8px 0 0;font-size:13px;line-height:1.45}
.tap-promo-me__msg.is-ok{color:#1b7a4d}
.tap-promo-me__msg.is-err{color:#b3261e}
.tap-promo-me__list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:8px}
.tap-promo-me__item{display:flex;flex-wrap:wrap;align-items:center;gap:6px 10px;padding:10px 12px;border:1px dashed #d8cbe0;border-radius:12px}
.tap-promo-me__code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:15px;font-weight:700;letter-spacing:.06em}
.tap-promo-me__meta{flex:1 1 140px;font-size:12px;color:#5d4d6e}
.tap-promo-me__item.is-done{opacity:.6}
.tap-promo-me__item .tap-btn{margin-left:auto}
.tap-promo-reward{margin:16px 0 0;padding:14px;border-radius:14px;background:#fff3e8;border:1px solid #ffd9b8;text-align:left;color:#241233}
.tap-promo-reward strong{display:block;margin-bottom:4px;font-family:var(--tap-font-heading,'Manrope',system-ui,sans-serif);font-size:16px}
.tap-promo-reward p{margin:0 0 10px;font-size:14px;line-height:1.5}

@media (max-width:767px){
	.tap-promo__media{flex-basis:34%}
	.tap-promo:not([data-tap-promo-slider]) .tap-promo__body{padding:14px}
	.tap-promo__title{font-size:16px}
	.tap-promo--strip .tap-promo__cta{margin:4px 0 0}
	/* Above the docked bottom nav (66px + safe area); leave room for the WhatsApp button. */
	.tap-promo-float{left:12px;right:auto;width:calc(100vw - 92px);max-width:380px;bottom:calc(76px + env(safe-area-inset-bottom,0px))}
	.tap-promo-float .tap-promo__media{display:none}
	.tap-promo-float .tap-promo__title{font-size:15px}
	.tap-promo-float .tap-promo__text{font-size:13px}
}
@media (prefers-reduced-motion:reduce){.tap-promo-float{transition:none}}

/* v30.32.112: the theme's h2/h3 rules (36px+ display headings) won over the
   promo headings on the live Wallet page. Pin the promo heading sizes. */
html body .tap-promo-me h2.tap-promo-me__h,html body .tap-promo-me h3.tap-promo-me__h{font-family:var(--tap-font-heading,'Manrope',system-ui,sans-serif) !important;font-size:16px !important;line-height:1.35 !important;font-weight:700 !important;letter-spacing:0 !important;margin:0 0 10px !important;color:#241233 !important}
html body .tap-promo-me h3.tap-promo-me__h{margin-top:14px !important;font-size:14px !important}
html body .tap-promo h3.tap-promo__title{font-family:var(--tap-font-heading,'Manrope',system-ui,sans-serif) !important;font-size:18px !important;line-height:1.3 !important;font-weight:700 !important;letter-spacing:0 !important;margin:0 !important;color:inherit !important}
html body .tap-promo--strip h3.tap-promo__title{font-size:15px !important}
@media (max-width:767px){html body .tap-promo h3.tap-promo__title{font-size:16px !important}html body .tap-promo-float h3.tap-promo__title{font-size:15px !important}}
