/* DTP Cannes Lions — Banner CSS ([dtp_cannes_lions_banner]) */
.dtpcl-banner-root {
  --hl: #0BB9E2;
  --border: rgba(255,255,255,.07);
  font-family: 'Inter', system-ui, sans-serif;
  background: transparent;
  border-radius: 12px;
  overflow: hidden;
  padding: 24px 24px 22px;
}
.dtpcl-banner-root * { box-sizing: border-box; }

/* Stats */
.dtpcl-bn-stats { display: grid; grid-template-columns: repeat(4,1fr); gap: 8px; margin-bottom: 14px; }
.dtpcl-bn-stat {
  background: rgba(255,255,255,.05); border: 1px solid var(--border);
  border-radius: 7px; padding: 12px 14px;
  display: flex; align-items: center; gap: 10px;
}
.dtpcl-bn-num { font-family: 'Montserrat', sans-serif; font-size: 26px; font-weight: 700; color: var(--hl); line-height: 1; flex: none; }
.dtpcl-bn-lab { font-size: 11px; font-weight: 600; color: rgba(255,255,255,.85); line-height: 1.3; }

/* Bottom grid */
.dtpcl-bn-bottom { display: grid; grid-template-columns: 1fr 280px; gap: 10px; margin-bottom: 18px; align-items: stretch; }

/* Podium */
.dtpcl-bn-podium { display: flex; flex-direction: column; gap: 5px; height: 100%; }
.dtpcl-bn-row {
  display: flex; align-items: center; gap: 10px;
  padding: 8px 12px; border-radius: 6px; flex: 1;
}
.dtpcl-bn-g1 { background: rgba(212,160,23,.07); border: 1px solid rgba(212,160,23,.2); }
.dtpcl-bn-g2 { background: rgba(255,255,255,.03); border: 1px solid var(--border); }
.dtpcl-bn-g3 { background: rgba(181,114,58,.06); border: 1px solid rgba(181,114,58,.15); }
.dtpcl-bn-medal { font-size: 16px; width: 22px; text-align: center; flex: none; }
.dtpcl-bn-name { font-size: 13px; font-weight: 700; color: #fff; flex: 1; }
.dtpcl-bn-pills { display: flex; gap: 4px; flex-wrap: wrap; }
.dtpcl-bn-pts { font-size: 12px; font-weight: 700; color: #fff; white-space: nowrap; min-width: 50px; text-align: right; }

/* Pills */
.dtpcl-bn-pill { font-size: 10px; font-weight: 700; border-radius: 4px; padding: 2px 7px; white-space: nowrap; }
.dtpcl-bn-p-grand-prix,.dtpcl-bn-p-gp { background: rgba(11,185,226,.15); color: #0BB9E2; }
.dtpcl-bn-p-gold   { background: rgba(212,160,23,.15); color: #d4a017; }
.dtpcl-bn-p-silver { background: rgba(138,154,176,.15); color: #8a9ab0; }
.dtpcl-bn-p-bronze { background: rgba(181,114,58,.15); color: #b5723a; }
.dtpcl-bn-p-sl,.dtpcl-bn-p-shortlist { background: rgba(255,255,255,.07); color: rgba(255,255,255,.4); }

/* Top campagne */
.dtpcl-bn-topcamp {
  background: rgba(11,185,226,.06); border: 1px solid rgba(11,185,226,.2);
  border-radius: 7px; padding: 14px 16px;
  display: flex; flex-direction: column; justify-content: space-between; height: 100%;
  gap: 10px;
}
.dtpcl-bn-topcamp-label { font-size: 10px; font-weight: 600; letter-spacing: .07em; text-transform: uppercase; color: rgba(11,185,226,.7); }
.dtpcl-bn-topcamp-title { font-family: 'Montserrat', sans-serif; font-size: 15px; font-weight: 700; color: #fff; line-height: 1.25; }
.dtpcl-bn-topcamp-agency { font-size: 12px; color: rgba(255,255,255,.45); }
.dtpcl-bn-topcamp-pills { margin-top: auto; }

/* Footer */
.dtpcl-bn-footer { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
.dtpcl-bn-cta {
  display: inline-flex; align-items: center; gap: 5px;
  font: 600 13px 'Inter', sans-serif; color: #0BB9E2;
  text-decoration: none; background: none; border: none;
  padding: 0; cursor: pointer;
}
.dtpcl-bn-cta-text { border-bottom: 1px solid rgba(11,185,226,.4) !important; text-decoration: underline !important; text-underline-offset: 3px; text-decoration-color: rgba(11,185,226,.4) !important; text-decoration-thickness: 1px !important; }
.dtpcl-bn-cta:hover { opacity: .75; }
.dtpcl-bn-updated { font-size: 11px; color: rgba(34,197,94,.6); display: inline-flex; align-items: center; gap: 6px; }
.dtpcl-bn-dot {
  width: 6px; height: 6px; border-radius: 50%;
  background: #22c55e; flex: none; display: inline-block;
  animation: dtpcl-bn-pulse 2s infinite;
}
@keyframes dtpcl-bn-pulse {
  0%   { box-shadow: 0 0 0 0 rgba(34,197,94,.5); }
  70%  { box-shadow: 0 0 0 5px rgba(34,197,94,0); }
  100% { box-shadow: 0 0 0 0 rgba(34,197,94,0); }
}

@media (max-width: 640px) {
  .dtpcl-bn-stats { grid-template-columns: repeat(2,1fr); }
  .dtpcl-bn-bottom { grid-template-columns: 1fr; }
}
