/* Shared, quiet empty states: the accent follows the current site's palette. */
:is(.raffle-card-grid, .promotion-grid) > .catalog-empty {
  grid-column: 1 / -1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 174px;
  padding: 26px 20px;
  border: 1px solid rgba(255,255,255, .07);
  border-radius: 16px;
  background: rgba(255,255,255, .015);
  box-shadow: none;
  text-align: center;
}
:is(.raffle-card-grid, .promotion-grid) > .catalog-empty[hidden] { display: none; }
.catalog-empty .catalog-empty-icon {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  margin: 0;
  padding: 0;
  border: 1px solid color-mix(in srgb, var(--accent) 16%, transparent);
  border-radius: 12px;
  color: var(--accent);
  background: color-mix(in srgb, var(--accent) 5%, transparent);
  box-shadow: none;
}
.catalog-empty .catalog-empty-icon .ui-icon { width: 22px; height: 22px; filter: none; }
.catalog-empty .catalog-empty-copy { max-width: 420px; }
.catalog-empty .catalog-empty-copy strong {
  display: block;
  margin: 0;
  color: var(--text, #f5f6f8);
  font-size: 16px;
  font-weight: 750;
  letter-spacing: -.02em;
  line-height: 1.4;
}
.catalog-empty .catalog-empty-copy p { margin: 5px 0 0; color: var(--muted, #8c9099); font-size: 13px; line-height: 1.5; }
@media (max-width: 640px) {
  :is(.raffle-card-grid, .promotion-grid) > .catalog-empty { min-height: 160px; padding: 24px 16px; border-radius: 14px; }
  .catalog-empty .catalog-empty-copy strong { font-size: 15px; }
}

.promotion-filter-stack{display:grid;grid-template-columns:58px minmax(0,1fr);align-items:center;gap:10px 12px;width:min(100%,670px)}
.promotion-filter-row{display:contents}
.promotion-filter-label{color:#717880;font-size:9px;font-weight:900;letter-spacing:.16em;text-align:right}
.promotion-filter-row .promotion-filters{display:flex;flex-wrap:nowrap;gap:8px;width:100%}
.promotion-filter-row .promotion-filters button{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding-inline:10px;white-space:nowrap}
.promotion-filter-row .promotion-filters button b{flex:0 0 22px;margin-left:0}
.raffle-public-filter-row{display:flex;align-items:center;justify-content:flex-end;gap:12px}
.raffle-public-filter-label{color:#717880;font-size:9px;font-weight:900;letter-spacing:.16em}
.catalog-section-head{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:30px}
.catalog-section-title h2{margin:0;color:#f5f7f5;font:900 clamp(34px,4vw,62px)/.96 var(--font-display,sans-serif);font-style:normal;letter-spacing:-.035em}
.catalog-section-visual{display:flex;flex:1 1 260px;min-width:170px;align-items:center;gap:16px;pointer-events:none}
.catalog-icon-pair{position:relative;display:block;width:132px;height:100px;flex:0 0 132px}
.catalog-icon-pair>span{position:absolute;display:grid;place-items:center;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);background:radial-gradient(circle at 32% 18%,color-mix(in srgb,var(--accent) 14%,transparent),#070b10 74%);box-shadow:inset 0 1px rgba(255,255,255,.06),0 13px 30px rgba(0,0,0,.25)}
.catalog-icon-pair>span:first-child{top:9px;left:8px;width:76px;height:76px;border-radius:23px;transform:rotate(-12deg)}
.catalog-icon-pair>span:first-child::before{position:absolute;inset:7px;content:"";border:1px solid color-mix(in srgb,var(--accent) 12%,transparent);border-radius:17px}
.catalog-icon-pair>span:last-child{z-index:1;right:0;bottom:5px;width:54px;height:54px;border-radius:50%;color:#e0e5ef;background:linear-gradient(145deg,#19202c,#080c12);border-color:rgba(190,202,226,.25);transform:rotate(10deg)}
.catalog-icon-pair .ui-icon{width:33px;height:33px;filter:drop-shadow(0 0 11px color-mix(in srgb,var(--accent) 28%,transparent))}
.catalog-icon-pair>span:last-child .ui-icon{width:23px;height:23px}
.catalog-section-visual--tickets .catalog-icon-pair>span:first-child,.catalog-section-visual--tickets .catalog-icon-pair>span:first-child::before{border-radius:50%}
.catalog-section-visual--tickets .catalog-icon-pair>span:first-child{transform:rotate(8deg)}
.catalog-section-visual--tickets .catalog-icon-pair>span:last-child{border-radius:17px;transform:rotate(-9deg)}
.catalog-filter-trail{position:relative;display:block;flex:1 1 auto;min-width:16px;height:27px;border-top:1px solid color-mix(in srgb,var(--accent) 32%,transparent);border-right:1px solid color-mix(in srgb,var(--accent) 22%,transparent);border-radius:0 18px 0 0;transform:translateY(12px);box-shadow:0 -5px 18px -11px color-mix(in srgb,var(--accent) 40%,transparent)}
.catalog-filter-trail::before{position:absolute;top:6px;right:13px;left:10px;height:1px;content:"";background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 18%,transparent) 18%,color-mix(in srgb,var(--accent) 7%,transparent) 76%,transparent)}
.catalog-filter-trail::after{position:absolute;right:-3px;bottom:0;width:5px;height:5px;content:"";border-top:1px solid var(--accent);border-right:1px solid var(--accent);transform:rotate(45deg);opacity:.65}
.catalog-filter-trail>i{position:absolute;top:-3px;width:5px;height:5px;background:var(--accent);border-radius:50%;box-shadow:0 0 10px color-mix(in srgb,var(--accent) 50%,transparent)}
.catalog-filter-trail>i:first-child{left:0;width:20px;height:3px;top:-2px;border-radius:3px;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 25%,transparent))}
.catalog-filter-trail>i:nth-child(2){left:60%;width:16px;height:2px;top:-2px;border-radius:3px;opacity:.45}
.catalog-filter-trail>i:last-child{right:22px;width:4px;height:4px;top:-3px;opacity:.6}
.catalog-filter-stack{display:grid;grid-template-columns:minmax(0,1fr);align-items:center;gap:10px;width:min(100%,670px);margin-left:auto}
.catalog-filter-stack--single{align-self:flex-end}
.catalog-filter-row{display:contents}
.catalog-filters{display:flex;width:100%;justify-content:flex-end;gap:8px;flex-wrap:nowrap}
.catalog-filters button{display:inline-flex;min-height:44px;align-items:center;justify-content:center;gap:6px;padding:0 17px;color:#b5b8c0;background:rgba(10,12,16,.75);border:1px solid rgba(255,255,255,.11);border-radius:11px;font:inherit;font-size:12px;font-weight:800;white-space:nowrap;cursor:pointer}
.catalog-filters button b{display:inline-grid;min-width:22px;height:22px;place-items:center;margin:0;color:#babdc5;background:rgba(255,255,255,.08);border-radius:20px;font-size:10px}
.catalog-filters button:hover{color:#edeff5;border-color:color-mix(in srgb,var(--accent) 58%,transparent)}
.catalog-filters button.active{color:#030710;background:var(--accent);border-color:var(--accent)}
.catalog-filters button.active b{color:#091021;background:rgba(3,6,16,.16)}
.raffle-list-toolbar .raffle-section-title{margin-bottom:0}
@media(max-width:900px){.promotion-section-head{align-items:flex-start}.promotion-filter-stack{width:100%;max-width:670px}}
@media(max-width:900px){.catalog-section-head{align-items:flex-start;flex-direction:column}.catalog-filter-stack{width:min(100%,670px);align-self:flex-end}}
@media(max-width:620px){.promotion-filter-stack{grid-template-columns:1fr;gap:7px}.promotion-filter-row{display:grid;gap:7px}.promotion-filter-label{text-align:left}.promotion-filter-row .promotion-filters{overflow-x:auto;padding-bottom:3px}.raffle-public-filter-row{width:100%;align-items:flex-start;flex-direction:column;gap:7px}.raffle-public-filter-row .raffle-filters{width:100%}.catalog-filter-stack{width:100%;grid-template-columns:1fr;gap:7px}.catalog-filter-row{display:grid;gap:7px}.catalog-filter-label{text-align:left}.catalog-filters{justify-content:flex-start;overflow-x:auto;padding-bottom:3px}.catalog-section-title h2{font-size:clamp(34px,11vw,48px)}}
.catalog-filter-stack{flex:0 1 auto;width:max-content;max-width:670px;min-width:0}
.catalog-filter-stack--single{flex-basis:auto;width:auto;align-self:center}
@media(max-width:900px){
.catalog-section-head{align-items:stretch;gap:10px}
.catalog-section-visual{flex-basis:auto;width:100%;min-width:0}
.catalog-filter-trail{height:38px;transform:translateY(18px)}
.catalog-filter-trail::after{bottom:-5px;right:-3px;transform:rotate(135deg)}
.catalog-filter-stack,.catalog-filter-stack--single{flex-basis:auto;width:min(100%,670px);align-self:flex-end}
}
@media(max-width:620px){
.catalog-section-head{gap:14px}
.catalog-icon-pair{width:110px;height:84px;flex-basis:110px}
.catalog-icon-pair>span:first-child{width:64px;height:64px;left:4px;top:5px;border-radius:19px}
.catalog-icon-pair>span:first-child::before{border-radius:13px}
.catalog-section-visual--tickets .catalog-icon-pair>span:first-child,.catalog-section-visual--tickets .catalog-icon-pair>span:first-child::before{border-radius:50%}
.catalog-icon-pair>span:last-child{width:46px;height:46px;bottom:2px}
.catalog-icon-pair .ui-icon{width:28px;height:28px}
.catalog-icon-pair>span:last-child .ui-icon{width:20px;height:20px}
.catalog-filter-stack,.catalog-filter-stack--single{width:100%}
}

/* Mobile catalogs: show all options rather than cropping a horizontal strip. */
@media (max-width: 620px) {
  .catalog-section-head { gap: 18px; margin-bottom: 24px; }
  .catalog-section-visual { gap: 12px; }
  .catalog-icon-pair { width: 94px; height: 72px; flex-basis: 94px; }
  .catalog-icon-pair > span:first-child { width: 56px; height: 56px; border-radius: 17px; }
  .catalog-icon-pair > span:last-child { width: 38px; height: 38px; }
  .catalog-icon-pair .ui-icon { width: 25px; height: 25px; }
  .catalog-icon-pair > span:last-child .ui-icon { width: 18px; height: 18px; }
  .catalog-filter-trail { height: 20px; transform: translateY(8px); box-shadow: none; }
  .catalog-filter-trail::after { bottom: -3px; }
  .catalog-filter-stack { gap: 10px; }
  .catalog-filter-row .catalog-filters {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
    overflow: visible;
    padding-bottom: 0;
  }
  .catalog-filter-row .catalog-filters[aria-label="Filtrar por tipo"] {
    grid-template-columns: repeat(4, minmax(0, 1fr));
  }
  .catalog-filter-row .catalog-filters button {
    min-width: 0;
    min-height: 42px;
    gap: 4px;
    padding: 0 6px;
    font-size: 11px;
    border-radius: 10px;
  }
  .catalog-filter-row .catalog-filters button b {
    min-width: 18px;
    width: 18px;
    height: 18px;
    flex-basis: 18px;
    font-size: 9px;
  }
}

@media (min-width: 360px) and (max-width: 620px) {
  .promotion-filters:has(> button:nth-child(4):last-child):has(> [data-promotion-type-filter="subscriber"]):has(> [data-promotion-type-filter="vip"]) {
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.3fr) minmax(0, .8fr) minmax(0, .8fr);
  }

  .catalog-filter-row .catalog-filters button[data-promotion-type-filter="subscriber"],
  .catalog-filter-row .catalog-filters button[data-promotion-type-filter="vip"] {
    padding-inline: 4px;
    gap: 3px;
    font-size: 10px;
  }
}

@media (max-width: 359px) {
  .catalog-filter-row .catalog-filters[aria-label="Filtrar por tipo"] {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}
