/* Promotions module: safe, responsive ad placements + marketplace UI */
.promo-market-header{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;flex-wrap:wrap}
.promo-kicker{font-size:.72rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#6366f1;margin-bottom:.35rem}
.promo-safe-flow{display:flex;align-items:center;gap:8px;flex-wrap:wrap;background:rgba(99,102,241,.08);border:1px solid rgba(99,102,241,.16);border-radius:18px;padding:10px 12px;font-size:.78rem}
.promo-safe-flow span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.promo-card-soft{border:1px solid rgba(148,163,184,.18);border-radius:18px;box-shadow:0 14px 34px rgba(15,23,42,.08);overflow:hidden}
.promo-type-card{cursor:pointer;border:1px solid rgba(148,163,184,.22);border-radius:18px;padding:16px;background:rgba(255,255,255,.04);transition:.18s ease}
.promo-type-card:hover,.promo-type-card.active{border-color:rgba(99,102,241,.55);box-shadow:0 12px 28px rgba(99,102,241,.13);transform:translateY(-1px)}
.promo-type-icon{width:44px;height:44px;border-radius:14px;background:rgba(99,102,241,.12);color:#6366f1;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.promo-badge-soft{background:rgba(148,163,184,.12);color:inherit;border:1px solid rgba(148,163,184,.24)}
.promo-badge-price{background:rgba(16,185,129,.12);color:#059669;border:1px solid rgba(16,185,129,.25)}
.promo-selected-info{display:flex;gap:12px;border:1px solid rgba(99,102,241,.16);background:rgba(99,102,241,.07);border-radius:16px;padding:14px}
.promo-selected-icon{width:36px;height:36px;border-radius:12px;background:rgba(99,102,241,.16);color:#6366f1;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.promo-panel-picker,.promo-service-picker{border:1px solid rgba(148,163,184,.18);border-radius:16px;padding:14px;background:rgba(148,163,184,.05)}
.promo-picker-list,.promo-service-box{max-height:260px;overflow:auto;border:1px solid rgba(148,163,184,.16);border-radius:14px;margin-top:10px;background:rgba(255,255,255,.04)}
.promo-picker-item,.promo-service-item{width:100%;border:0;border-bottom:1px solid rgba(148,163,184,.12);background:transparent;text-align:left;display:flex;align-items:center;gap:10px;padding:11px 12px;color:inherit}
.promo-picker-item:last-child,.promo-service-item:last-child{border-bottom:0}
.promo-picker-item:hover,.promo-service-item:hover,.promo-picker-item.selected,.promo-service-item.selected{background:rgba(99,102,241,.10)}
.promo-picker-item.add-panel{color:#2563eb;font-weight:700}
.promo-picker-item span,.promo-service-item div{display:flex;flex-direction:column;min-width:0}
.promo-picker-item small,.promo-service-item small{color:var(--bs-secondary-color,#64748b);font-size:.76rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.promo-service-item{justify-content:space-between}
.promo-service-item strong{font-size:.86rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.promo-service-item span{font-size:.78rem;font-weight:800;color:#059669;flex-shrink:0;margin-left:10px}
.promo-flow-list{display:grid;gap:12px}
.promo-flow-list>div{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:flex-start}
.promo-flow-list span{width:34px;height:34px;border-radius:50%;background:rgba(99,102,241,.12);color:#6366f1;display:flex;align-items:center;justify-content:center;font-weight:800}
.promo-flow-list strong{display:block}
.promo-flow-list small{display:block;color:var(--bs-secondary-color,#64748b);margin-top:2px}
.promo-status-badge{background:rgba(99,102,241,.12);color:#4f46e5;border:1px solid rgba(99,102,241,.18)}
.promo-manual-details{white-space:pre-wrap;background:rgba(15,23,42,.04);border:1px solid rgba(148,163,184,.2);border-radius:12px;padding:14px;color:inherit}
.promo-pay-qr{max-height:320px;object-fit:contain}

/* Global top/bottom ad banners */
.promo-global-wrap{padding:10px 16px}
.promo-global-banner{max-width:1180px;margin:0 auto;border:1px solid rgba(99,102,241,.20);background:linear-gradient(135deg,rgba(99,102,241,.12),rgba(14,165,233,.08));border-radius:18px;padding:12px 14px;display:flex;align-items:center;justify-content:space-between;gap:14px}
.promo-global-main{display:flex;align-items:center;gap:12px;min-width:0}
.promo-global-logo{width:54px;height:42px;object-fit:contain;border-radius:10px;background:rgba(255,255,255,.4);border:1px solid rgba(148,163,184,.2)}
.promo-global-kicker{font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;font-weight:800;color:#6366f1}
.promo-global-title{font-weight:800;line-height:1.2}
.promo-global-text{font-size:.82rem;color:var(--bs-secondary-color,#64748b);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:760px}
.promo-global-cta{white-space:nowrap}

/* Footer ads */
.promo-footer-wrap{margin-top:14px}
.promo-footer-ad{display:flex;align-items:center;gap:10px;border:1px solid rgba(148,163,184,.18);border-radius:16px;padding:10px;background:rgba(255,255,255,.06);min-height:86px}
.promo-footer-img{width:104px;height:64px;object-fit:contain;border-radius:12px;background:rgba(255,255,255,.08);border:1px solid rgba(148,163,184,.15);flex-shrink:0}
.promo-footer-copy{min-width:0;flex:1}
.promo-footer-label{font-size:.62rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800;color:#6366f1;margin-bottom:3px}
.promo-footer-title{font-weight:800;font-size:.92rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.promo-footer-text{font-size:.76rem;color:var(--bs-secondary-color,#64748b);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.promo-footer-cta{white-space:nowrap}

/* Pinned table promos */
.promo-table-row{background:linear-gradient(90deg,rgba(99,102,241,.10),rgba(14,165,233,.05))!important}
.promo-badge{display:inline-flex;align-items:center;gap:4px;border-radius:999px;padding:3px 8px;background:rgba(99,102,241,.12);color:#4f46e5;border:1px solid rgba(99,102,241,.18);font-size:.72rem;font-weight:800}
.locked-service-row .promo-badge{opacity:.9}

/* Dashboard ads */
.promo-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.promo-dashboard-card{border:1px solid rgba(148,163,184,.18);border-radius:18px;overflow:hidden;background:rgba(255,255,255,.04);box-shadow:0 10px 26px rgba(15,23,42,.07)}
.promo-dashboard-card img{width:100%;height:118px;object-fit:cover;background:rgba(148,163,184,.08)}
.promo-dashboard-body{padding:14px}
.promo-dashboard-title{font-weight:800;margin-top:8px}
.promo-dashboard-text{font-size:.84rem;color:var(--bs-secondary-color,#64748b);margin-top:4px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}

/* Top providers public cards fallback */
.provider-logo-lg.image-failed:before{content:"\\F1DD";font-family:"bootstrap-icons";font-size:2rem;color:#64748b}

@media (min-width:768px){
  .promo-footer-multi{display:flex!important;gap:10px}
  .promo-footer-multi .promo-footer-slide{display:flex!important;flex:1;min-width:0}
}
@media (max-width:991px){
  .promo-dashboard-grid{grid-template-columns:1fr}
  .promo-safe-flow{width:100%}
}
@media (max-width:767px){
  .promo-global-banner{align-items:flex-start;flex-direction:column}
  .promo-global-main{align-items:flex-start}
  .promo-global-logo{width:48px;height:38px}
  .promo-global-text{white-space:normal;max-width:none}
  .promo-footer-ad{min-height:118px;align-items:flex-start}
  .promo-footer-img{width:120px;height:78px}
  .promo-footer-multi{display:block}
  .promo-service-item strong{white-space:normal}
}
@media (max-width:480px){
  .promo-footer-ad{flex-direction:column}
  .promo-footer-img{width:100%;height:110px}
  .promo-footer-cta{width:100%}
  .promo-market-header h4{font-size:1.1rem}
}

/* Patch: cleaner selections, approval flow, light theme compatibility */
.promo-selection-summary{
  display:flex;
  align-items:flex-start;
  gap:10px;
  margin-top:10px;
  padding:10px 12px;
  border:1px solid rgba(16,185,129,.22);
  background:rgba(16,185,129,.08);
  border-radius:14px;
  color:inherit;
}
.promo-selection-summary i{color:#059669;line-height:1.35;flex-shrink:0}
.promo-selection-summary strong{display:block;font-size:.8rem;color:#059669;margin-bottom:1px}
.promo-selection-summary span{display:block;font-size:.84rem;color:var(--bs-body-color,#111827);word-break:break-word}
.promo-picker-item.selected,.promo-service-item.selected{
  border-color:rgba(16,185,129,.25);
  background:linear-gradient(135deg,rgba(16,185,129,.10),rgba(99,102,241,.08));
  box-shadow:inset 3px 0 0 #10b981;
}
.promo-service-item.selected span{color:#047857}
.promo-request-item{background:transparent}
.promo-mini-action{padding:.18rem .45rem;font-size:.72rem;border-radius:9px}

.promo-flow-list{display:grid;gap:14px}
.promo-flow-list>div{
  display:grid!important;
  grid-template-columns:38px minmax(0,1fr)!important;
  grid-template-rows:auto auto;
  gap:2px 12px!important;
  align-items:start!important;
  padding:10px;
  border-radius:14px;
  background:rgba(99,102,241,.035);
}
.promo-flow-list>div>span{grid-column:1;grid-row:1 / span 2;width:34px;height:34px}
.promo-flow-list>div>strong{grid-column:2;grid-row:1;min-width:0;line-height:1.25}
.promo-flow-list>div>small{grid-column:2;grid-row:2;min-width:0;line-height:1.45;word-break:normal;overflow-wrap:break-word;margin-top:2px!important}

/* Shared placement wrappers referenced by partials */
.promo-global-wrap,.promo-footer-wrap{box-sizing:border-box}
.promo-global-banner,.promo-footer-ad,.promo-dashboard-card,.promo-type-card,.promo-card-soft{
  background-color:var(--bs-card-bg,#fff);
  color:var(--bs-body-color,#111827);
}
.promo-global-banner img,.promo-footer-ad img,.promo-dashboard-card img{max-width:100%;display:block}
.promo-footer-multi{width:100%}
.promo-footer-slide{min-width:0}
.promo-footer-wrap .promo-footer-multi{align-items:stretch}
.promo-footer-wrap .promo-footer-ad{height:100%}

@media (max-width:1199px){
  .promo-market-header{gap:12px}
  .promo-type-card{padding:14px}
}
@media (max-width:767px){
  .promo-flow-list>div{grid-template-columns:36px minmax(0,1fr)!important;padding:10px 8px}
  .promo-flow-list>div>small{font-size:.8rem;line-height:1.45}
  .promo-selection-summary{font-size:.9rem}
  .promo-picker-list,.promo-service-box{max-height:300px}
  .promo-type-icon{width:40px;height:40px}
}

/* Featured panel grid in reseller directory */
.promo-featured-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}
.promo-featured-card{display:block;position:relative;border-radius:18px;overflow:hidden;aspect-ratio:16/9;background:rgba(148,163,184,.1);border:1px solid rgba(148,163,184,.18);text-decoration:none;transition:.18s ease}
.promo-featured-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(15,23,42,.14)}
.promo-featured-card img{width:100%;height:100%;object-fit:cover;display:block}
.promo-featured-overlay{position:absolute;bottom:0;left:0;right:0;background:linear-gradient(transparent,rgba(15,23,42,.82));padding:20px 14px 12px;color:#fff}
.promo-featured-title{font-weight:800;font-size:.95rem;line-height:1.25;margin-bottom:2px}
.promo-featured-text{font-size:.76rem;opacity:.85;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* Best Service badge */
.promo-badge.best-service{background:rgba(16,185,129,.12);color:#059669;border-color:rgba(16,185,129,.25)}
/* Featured Panel badge */
.promo-badge.featured-panel{background:rgba(245,158,11,.12);color:#d97706;border-color:rgba(245,158,11,.25)}

/* Dashboard ad improvements */
.promo-dashboard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.promo-dashboard-card{border:1px solid rgba(148,163,184,.18);border-radius:18px;overflow:hidden;background:var(--bs-card-bg,#fff);box-shadow:0 6px 20px rgba(15,23,42,.07);display:flex;flex-direction:column}
.promo-dashboard-card img{width:100%;height:140px;object-fit:cover;background:rgba(148,163,184,.08);display:block}
.promo-dashboard-card .no-image-placeholder{height:80px;background:linear-gradient(135deg,rgba(99,102,241,.08),rgba(14,165,233,.06));display:flex;align-items:center;justify-content:center;font-size:2rem;color:rgba(99,102,241,.3)}
.promo-dashboard-body{padding:14px 16px;flex:1;display:flex;flex-direction:column}
.promo-dashboard-title{font-weight:800;font-size:1rem;margin-bottom:4px;line-height:1.25}
.promo-dashboard-text{font-size:.84rem;color:var(--bs-secondary-color,#64748b);margin-top:2px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}
.promo-dashboard-card .btn{align-self:flex-start;margin-top:10px}
.promo-dashboard-img-hint{font-size:.7rem;color:var(--bs-secondary-color,#64748b);margin-top:4px}

@media (max-width:991px){.promo-dashboard-grid{grid-template-columns:1fr 1fr}}
@media (max-width:600px){.promo-dashboard-grid{grid-template-columns:1fr}}

/* Image size hints */
.promo-img-hint{font-size:.7rem;font-weight:400;color:var(--bs-secondary-color,#64748b);margin-left:4px}
.promo-img-size-hint{color:var(--bs-secondary-color,#64748b);font-size:.72rem}
