/* ============================================================
   GamifyJW — Suplemento (clases hijas y variantes)
   Cubre clases referenciadas en templates que extienden los
   componentes base de main.css. Cargado después de main.css.
   ============================================================ */

/* === Layout / utilities === */
.cp-cols-2 { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 768px) { .cp-cols-2 { grid-template-columns: 1fr 1fr; } }
.cp-list { list-style: none; padding: 0; margin: 0; }
.cp-content { line-height: 1.7; }
.cp-content p { margin: 0 0 1em; }
.cp-content img { border-radius: 6px; margin: 1em 0; }
.cp-skip-link { position: absolute; left: -9999px; top: auto; }
.cp-skip-link:focus { left: 10px; top: 10px; background: #fff; padding: 8px 14px; z-index: 99999; border: 2px solid var(--cp-primary); }

/* === Header partials === */
.cp-header-top { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: .85rem; opacity: .8; }
.cp-header-right { display: flex; gap: 14px; align-items: center; }
.cp-topbar-cta { background: var(--cp-secondary, #1d3557); color: #fff; text-align: center; padding: 8px 12px; font-size: .9rem; }
.cp-topbar-cta a { color: #fff; text-decoration: underline; }
.cp-logo-wrap { display: flex; align-items: center; }
.cp-logo-text { font-weight: 800; font-size: 1.4rem; }
.cp-logo-accent { color: var(--cp-primary); }
.cp-logo-placeholder { width: 56px; height: 56px; background: var(--cp-primary); color: #fff; border-radius: 8px; display: flex; align-items: center; justify-content: center; font-weight: 800; font-size: 1.4rem; }
.cp-logo-centered, .cp-logo-split { font-size: 1.6rem; }
.cp-menu { list-style: none; padding: 0; margin: 0; display: flex; gap: 22px; flex-wrap: wrap; }
.cp-menu a { color: var(--cp-text); font-weight: 500; }
.cp-nav-left { justify-self: start; }
.cp-nav-centered { justify-self: center; }
.cp-link-logout { font-size: .85rem; color: var(--cp-muted, #8b949e); margin-left: 10px; }
.cp-user-link { display: inline-flex; align-items: center; gap: 8px; }

/* === Hero === */
.cp-hero-title { font-size: 2.4rem; color: #fff; margin-bottom: 14px; }
.cp-hero-sub { font-size: 1.15rem; opacity: .95; max-width: 700px; margin: 0 auto 24px; }
.cp-hero-cta { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* === Section heads === */
.cp-section-head { display: flex; justify-content: space-between; align-items: end; margin-bottom: 18px; flex-wrap: wrap; gap: 12px; }
.cp-section-head h2 { margin: 0; }
.cp-section-link { font-size: .9rem; color: var(--cp-primary); }
.cp-section-minimal { padding: 30px 0; }

/* === Grid 2 cols magazine === */
.cp-magazine { display: grid; gap: 24px; grid-template-columns: 1fr; }
@media (min-width: 900px) { .cp-magazine { grid-template-columns: 2fr 1fr; } }
.cp-mag-main, .cp-mag-side { min-width: 0; }
.cp-mag-feature { background: var(--cp-card-bg, #161b22); border: 1px solid var(--cp-border); border-radius: 10px; overflow: hidden; margin-bottom: 18px; }
.cp-mag-feature-body { padding: 18px; }
.cp-mag-list { list-style: none; padding: 0; margin: 0; }
.cp-minimal-list { list-style: none; padding: 0; }
.cp-minimal-list li { padding: 10px 0; border-bottom: 1px solid var(--cp-border); }

/* === Casino card hijos === */
.cp-casino-card-logo { display: block; padding: 18px; text-align: center; background: rgba(0,0,0,.02); }
.cp-casino-card-logo img { max-height: 60px; margin: 0 auto; }
.cp-casino-card-body { padding: 16px; }
.cp-casino-card-title { font-size: 1.1rem; margin: 0 0 8px; }
.cp-casino-card-title a { color: var(--cp-text); }
.cp-casino-card-rating { display: flex; align-items: center; gap: 8px; font-weight: 700; color: var(--cp-primary); margin-bottom: 10px; }
.cp-casino-card-bonus { background: rgba(212,175,55,.12); padding: 8px 12px; border-radius: 6px; font-size: .9rem; margin: 10px 0 14px; }
.cp-casino-card-actions { display: flex; gap: 8px; flex-wrap: wrap; }
.cp-rating-num { font-size: .9rem; opacity: .8; }
.cp-rating-max { opacity: .6; }

/* === Casino single === */
.cp-single-casino .cp-casino-header { display: grid; gap: 20px; grid-template-columns: 120px 1fr; align-items: center; padding: 20px; background: var(--cp-card-bg, #161b22); border-radius: 10px; margin-bottom: 24px; }
.cp-casino-logo-wrap { width: 120px; }
.cp-casino-title-wrap { min-width: 0; }
.cp-casino-title { margin: 0 0 6px; font-size: 1.7rem; }
.cp-casino-rating-big { font-size: 2rem; font-weight: 800; color: var(--cp-primary); }
.cp-casino-meta-grid { display: grid; gap: 10px; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); margin: 18px 0; }
.cp-casino-meta-grid .cp-meta-item { padding: 12px; background: rgba(0,0,0,.03); border-radius: 6px; }
.cp-casino-meta-grid .cp-meta-item strong { display: block; color: var(--cp-muted); font-size: .8rem; text-transform: uppercase; margin-bottom: 4px; }
.cp-casino-cta { background: var(--cp-primary); color: #fff; padding: 16px 24px; border-radius: 8px; display: inline-block; font-size: 1.1rem; font-weight: 700; }
.cp-casino-content { line-height: 1.7; }

/* === Reclamo card hijos === */
.cp-reclamo-card-head { display: flex; justify-content: space-between; align-items: start; gap: 10px; margin-bottom: 8px; }
.cp-reclamo-card-title { font-size: 1.1rem; margin: 0; }
.cp-reclamo-card-title a { color: var(--cp-text); }
.cp-reclamo-card-meta { font-size: .85rem; color: var(--cp-muted); }
.cp-reclamo-card-excerpt { font-size: .95rem; opacity: .9; margin: 8px 0; }
.cp-reclamos-list { list-style: none; padding: 0; }

/* === Reclamo single === */
.cp-single-reclamo .cp-reclamo-header { display: flex; justify-content: space-between; align-items: start; gap: 16px; flex-wrap: wrap; padding: 18px; background: var(--cp-card-bg); border-radius: 10px; margin-bottom: 18px; }
.cp-reclamo-meta { font-size: .9rem; color: var(--cp-muted); }
.cp-reclamo-content { line-height: 1.7; padding: 18px; background: var(--cp-card-bg); border-radius: 10px; margin-bottom: 18px; }
.cp-reclamo-casino-info { padding: 14px; background: rgba(0,0,0,.03); border-radius: 8px; margin: 14px 0; font-size: .95rem; }
.cp-reclamo-proof a { display: inline-block; padding: 6px 12px; background: var(--cp-primary); color: #fff; border-radius: 4px; }
.cp-reclamo-respond, .cp-reclamo-mod-actions { padding: 16px; background: rgba(0,0,0,.04); border-radius: 8px; margin: 16px 0; }
.cp-reclamo-respond h3, .cp-reclamo-mod-actions h3 { margin-top: 0; }

/* === Thread row hijos === */
.cp-thread-row-avatar { flex-shrink: 0; }
.cp-thread-row-body { flex: 1; min-width: 0; }
.cp-thread-row-title { font-weight: 600; margin: 0 0 4px; }
.cp-thread-row-title a { color: var(--cp-text); }
.cp-thread-row-meta { font-size: .85rem; color: var(--cp-muted); }
.cp-thread-row-stats { font-size: .85rem; color: var(--cp-muted); text-align: right; }

/* === Thread single === */
.cp-single-thread .cp-thread-header { padding: 18px; background: var(--cp-card-bg); border-radius: 10px; margin-bottom: 16px; }
.cp-thread-content { padding: 18px; background: var(--cp-card-bg); border-radius: 10px; line-height: 1.7; margin-bottom: 16px; }
.cp-thread-actions { display: flex; gap: 8px; flex-wrap: wrap; padding: 12px 0; }
.cp-thread-actions button { background: none; border: 1px solid var(--cp-border); padding: 6px 12px; border-radius: 4px; cursor: pointer; font-size: .85rem; }
.cp-thread-actions button:hover { background: var(--cp-primary); color: #fff; border-color: var(--cp-primary); }
.cp-thread-flags { display: inline-flex; gap: 4px; }
.cp-flag { display: inline-block; padding: 2px 8px; border-radius: 3px; font-size: .7rem; font-weight: 700; text-transform: uppercase; }
.cp-flag-pin { background: var(--cp-primary); color: #fff; }
.cp-flag-lock { background: #555; color: #fff; }
.cp-thread-cats { font-size: .85rem; color: var(--cp-muted); margin-bottom: 8px; }
.cp-thread-replies { margin-top: 24px; }
.cp-forum-list { list-style: none; padding: 0; margin: 0; }
.cp-forum-cat { padding: 14px; background: var(--cp-card-bg); border-radius: 8px; border: 1px solid var(--cp-border); }

/* === Big Win card hijos === */
.cp-bigwin-card-img { aspect-ratio: 16/10; overflow: hidden; background: rgba(0,0,0,.05); }
.cp-bigwin-card-img img { width: 100%; height: 100%; object-fit: cover; }
.cp-bigwin-card-body { padding: 14px; }
.cp-bigwin-card-title { font-size: 1.05rem; margin: 0 0 6px; }
.cp-bigwin-card-title a { color: var(--cp-text); }
.cp-bigwin-card-meta { font-size: .85rem; color: var(--cp-muted); }
.cp-bigwin-amount-tag { background: var(--cp-primary); color: #fff; padding: 4px 10px; border-radius: 4px; font-weight: 700; font-size: .85rem; display: inline-block; }
.cp-bigwins-feed { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* === Big Win single === */
.cp-single-bigwin .cp-bigwin-header { padding: 20px; background: var(--cp-card-bg); border-radius: 10px; margin-bottom: 18px; text-align: center; }
.cp-bigwin-image { margin: 0 0 18px; border-radius: 10px; overflow: hidden; }
.cp-bigwin-stats { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); margin: 18px 0; }
.cp-bigwin-stat { padding: 14px; background: rgba(0,0,0,.04); border-radius: 8px; text-align: center; }
.cp-bigwin-stat strong { display: block; font-size: 1.3rem; color: var(--cp-primary); }
.cp-bigwin-stat span { font-size: .8rem; color: var(--cp-muted); text-transform: uppercase; }
.cp-bigwin-meta { font-size: .9rem; color: var(--cp-muted); }
.cp-bigwin-content { line-height: 1.7; }
.cp-bigwin-actions { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 18px; }

/* === Vote up/down === */
.cp-vote-up::before { content: '▲ '; }
.cp-vote-down::before { content: '▼ '; }
.cp-vote-count { display: inline-block; min-width: 24px; text-align: center; font-weight: 700; }
.cp-vote-up-count, .cp-vote-down-count { font-size: .8rem; opacity: .7; }
.cp-change-status { background: var(--cp-secondary, #1d3557); color: #fff; }
.cp-change-status:hover { opacity: .9; }

/* === Reactions === */
.cp-react-emoji { font-size: 1.1rem; }

/* === Notification bell === */
.cp-notif-bell { position: relative; }
.cp-notif-toggle { background: none; border: 0; cursor: pointer; padding: 6px; font-size: 1.2rem; }
.cp-notif-count { position: absolute; top: 0; right: 0; background: #c00; color: #fff; border-radius: 10px; font-size: .7rem; padding: 1px 6px; line-height: 1.2; }
.cp-notif-head { padding: 10px 12px; border-bottom: 1px solid var(--cp-border); font-weight: 600; font-size: .9rem; }
.cp-notif-list { list-style: none; padding: 0; margin: 0; max-height: 360px; overflow-y: auto; }

/* === Newsletter form === */
.cp-newsletter-form { display: flex; gap: 8px; max-width: 420px; }
.cp-newsletter-form input[type=email] { flex: 1; padding: 10px 12px; border-radius: 6px; border: 1px solid var(--cp-border); background: rgba(255,255,255,.06); color: inherit; }
.cp-newsletter-form button { padding: 10px 16px; background: var(--cp-primary); color: #fff; border: 0; border-radius: 6px; cursor: pointer; font-weight: 600; }

/* === Footer partials === */
.cp-footer-col h4 { margin: 0 0 10px; }
.cp-footer-menu, .cp-footer-nav { list-style: none; padding: 0; margin: 0; }
.cp-footer-menu li, .cp-footer-nav li { padding: 4px 0; font-size: .9rem; }
.cp-footer-newsletter h4 { margin-bottom: 10px; }
.cp-footer-credits { font-size: .85rem; opacity: .75; }
.cp-footer-grid-3 { display: grid; gap: 30px; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); }
.cp-footer-minimal { text-align: center; padding: 20px 0; }

/* === Profile === */
.cp-profile { padding: 20px; background: var(--cp-card-bg); border-radius: 10px; }
.cp-profile-head { display: flex; gap: 18px; align-items: center; margin-bottom: 22px; }
.cp-profile-avatar img, .cp-profile-avatar { border-radius: 50%; }
.cp-profile-info h2 { margin: 0 0 4px; }
.cp-profile-stats { display: grid; gap: 14px; grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); margin-bottom: 24px; }

/* === Role badge === */
.cp-role-badge { display: inline-block; padding: 2px 8px; border-radius: 3px; font-size: .75rem; font-weight: 700; text-transform: uppercase; background: var(--cp-secondary, #1d3557); color: #fff; margin-left: 6px; }

/* === Search / archive (v1 — ahora overridden por la versión premium abajo) === */
.cp-search-form { display: flex; gap: 8px; max-width: 500px; margin: 0 auto; }
.cp-search-form input[type=search] { flex: 1; padding: 10px; border: 1px solid var(--cp-border); border-radius: 6px; }
.cp-min-rating { font-size: .85rem; padding: 8px 12px; background: rgba(0,0,0,.03); border-radius: 4px; display: inline-block; }

/* === Pagination === */
.cp-pagination { display: flex; gap: 6px; justify-content: center; padding: 30px 0; flex-wrap: wrap; }
.cp-pagination .page-numbers { padding: 8px 14px; border: 1px solid var(--cp-border); border-radius: 4px; color: var(--cp-text); }
.cp-pagination .page-numbers.current { background: var(--cp-primary); color: #fff; border-color: var(--cp-primary); }

/* === Posts (blog) === */
.cp-post-head { margin-bottom: 14px; }
.cp-post-title { margin: 0 0 6px; }
.cp-post-meta { font-size: .85rem; color: var(--cp-muted); }
.cp-post-author { font-weight: 600; }
.cp-post-date { opacity: .8; }
.cp-post-thumb { margin: 14px 0; border-radius: 8px; overflow: hidden; }
.cp-post-thumb img, .cp-post-thumb-full img { width: 100%; height: auto; }
.cp-post-excerpt { line-height: 1.6; }
.cp-post-body { line-height: 1.75; font-size: 1.05rem; }
.cp-posts-list { list-style: none; padding: 0; }

/* === Comments === */
.cp-comments { margin-top: 30px; padding: 20px; background: var(--cp-card-bg); border-radius: 10px; }
.cp-comments-title { margin-top: 0; }
.cp-comments-list { list-style: none; padding: 0; }

/* === 404 === */
.cp-404 { text-align: center; padding: 80px 20px; }
.cp-404 h1 { font-size: 4rem; color: var(--cp-primary); margin: 0; }

/* === Misc === */
.cp-tag { display: inline-block; padding: 2px 8px; background: rgba(0,0,0,.06); border-radius: 3px; font-size: .8rem; }
.cp-tag-18 { background: #c00; color: #fff; font-weight: 700; }
.cp-badge { display: inline-block; padding: 2px 8px; border-radius: 3px; font-size: .75rem; font-weight: 700; background: var(--cp-secondary); color: #fff; }
.cp-action-card { padding: 20px; background: var(--cp-card-bg); border-radius: 10px; border: 1px solid var(--cp-border); }
.cp-form-feedback { padding: 10px 14px; border-radius: 4px; margin: 10px 0; }
.cp-form-feedback.is-success { background: #d4edda; color: #155724; }
.cp-form-feedback.is-error { background: #f8d7da; color: #721c24; }
.cp-internal-related { margin-top: 30px; padding: 18px; background: rgba(0,0,0,.03); border-radius: 8px; }
.cp-internal-related h3 { margin-top: 0; }
.cp-meta-item strong { font-weight: 600; }
.cp-read-more { font-weight: 600; color: var(--cp-primary); }
.cp-sidebar { padding: 18px; }
.cp-sidebar-cta { padding: 18px; background: rgba(212,175,55,.1); border: 1px solid var(--cp-primary); border-radius: 10px; margin-bottom: 16px; text-align: center; }
.cp-sponsored-disclaimer { font-size: .8rem; color: var(--cp-muted); padding: 10px; background: rgba(0,0,0,.03); border-radius: 4px; }
.cp-legal-disclaimer { font-size: .85rem; opacity: .9; padding: 10px; }
.cp-geo-disclaimer { font-size: .85rem; padding: 8px; background: rgba(0,0,0,.04); text-align: center; }
.cp-geo-form select { padding: 4px 8px; border-radius: 3px; border: 1px solid var(--cp-border); background: transparent; color: inherit; font-size: .85rem; }
.cp-page-head { padding: 20px 0; border-bottom: 1px solid var(--cp-border); margin-bottom: 20px; }
.cp-page-body { line-height: 1.7; }

/* === Top casinos shortcode === */
.cp-top-casinos { display: grid; gap: 16px; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }

/* === Landing programatic === */
.cp-landing { padding: 30px 0; }
.cp-landing h1 { font-size: 2rem; margin-bottom: 12px; }

/* === Ad slot === */
.cp-ad-slot { margin: 20px 0; }

/* === Dashboard widget (admin) === */
.cp-dashboard-widget { padding: 12px; }

/* === Age gate inner === */
.cp-age-gate-inner { background: rgba(0,0,0,.6); padding: 30px; border-radius: 12px; max-width: 480px; }
.cp-age-gate-actions { display: flex; gap: 10px; justify-content: center; margin: 20px 0 10px; }
.cp-age-gate-foot { font-size: .8rem; opacity: .7; }

/* === Tiki avatars === */
.cp-avatar-tiki {
	background: linear-gradient(135deg, var(--cp-surface, #1a1a1a), var(--cp-bg, #0d1117)) !important;
	border: 2px solid rgba(255,255,255,.08);
	box-shadow: 0 2px 8px rgba(0,0,0,.25);
	transition: transform .2s, border-color .2s;
}
.cp-avatar-tiki:hover {
	transform: scale(1.05);
	border-color: var(--cp-primary);
}
/* Avatar grande del perfil — ver tiki completo, no crop. */
.cp-profile-avatar .cp-avatar-tiki {
	width: 110px !important;
	height: 110px !important;
	object-fit: contain;
	background: radial-gradient(circle at center, rgba(212,175,55,.12), transparent 70%), var(--cp-surface, #1a1a1a) !important;
	padding: 4px;
	border: 3px solid var(--cp-primary);
}

/* Comments avatar override (Gravatar lo deja redondo) */
.comment .avatar { border-radius: 50%; background: var(--cp-surface); }

/* === Profile edit form === */
.cp-profile-edit { padding: 24px; margin-bottom: 24px; }
.cp-profile-edit h2 { margin-top: 0; padding-bottom: 12px; border-bottom: 2px solid var(--cp-primary); }
.cp-profile-edit .cp-form-help { color: var(--cp-muted, #8b949e); font-size: .9rem; margin-bottom: 18px; }
.cp-profile-edit input[disabled],
.cp-profile-edit input[readonly] { opacity: .7; cursor: not-allowed; background: rgba(0,0,0,.04); }
.cp-profile-edit small { display: block; color: var(--cp-muted, #8b949e); font-size: .82rem; margin-top: 4px; }

.cp-form-fieldset { border: 1px solid var(--cp-border, #30363d); border-radius: 8px; padding: 16px; margin: 14px 0; }
.cp-form-fieldset legend { font-weight: 600; padding: 0 8px; }
.cp-form-help-inline { font-size: .85rem; color: var(--cp-muted, #8b949e); margin: 0 0 12px; }

.cp-profile-location, .cp-profile-fav { font-size: .95rem; margin: 6px 0; opacity: .9; }
.cp-profile-fav a { color: var(--cp-primary); font-weight: 600; }

/* === Tiki picker === */
.cp-tiki-picker {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(110px, 1fr));
	gap: 12px;
	margin-top: 8px;
}
.cp-tiki-option {
	position: relative;
	display: block;
	cursor: pointer;
	border: 3px solid transparent;
	border-radius: 12px;
	padding: 6px;
	background: rgba(0,0,0,.03);
	transition: border-color .2s, transform .15s, background .2s;
	text-align: center;
}
.cp-tiki-option:hover {
	border-color: rgba(212,175,55,.4);
	transform: translateY(-2px);
}
.cp-tiki-option.is-selected {
	border-color: var(--cp-primary);
	background: rgba(212,175,55,.12);
	box-shadow: 0 4px 14px rgba(212,175,55,.25);
}
.cp-tiki-option input[type=radio] {
	position: absolute;
	opacity: 0;
	pointer-events: none;
}
.cp-tiki-option img {
	width: 100%;
	max-width: 96px;
	height: auto;
	display: block;
	margin: 0 auto;
	border-radius: 8px;
	background: linear-gradient(135deg, var(--cp-surface, #1a1a1a), var(--cp-bg, #0d1117));
}
.cp-tiki-option.is-selected::after {
	content: '✓';
	position: absolute;
	top: 4px;
	right: 4px;
	background: var(--cp-primary);
	color: #fff;
	width: 22px;
	height: 22px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
	font-weight: 700;
}
.cp-tiki-option:focus-within {
	outline: 2px solid var(--cp-primary);
	outline-offset: 2px;
}

/* =========================================================
 * INTERIOR PAGE LAYOUTS
 * ========================================================= */

/* Layout default: 1 columna full-width, max-width container.
   El theme NO usa sidebar — todos los templates son full-width. */
.cp-page-layout {
	display: block;
	padding: 32px 0 60px;
	max-width: 1200px;
	margin: 0 auto;
}

/* Mobile: padding reducido */
@media (max-width: 960px) {
	.cp-page-layout {
		padding: 20px 0 40px;
	}
}

/* Cualquier sidebar residual queda oculto (defense in depth) */
.cp-sidebar,
aside.cp-sidebar,
.cp-page-layout > .cp-sidebar,
.cp-page-layout > aside {
	display: none !important;
}

/* === FULL WIDTH layout: alias retro-compatible === */
.cp-page-full {
	max-width: 1200px;
	margin: 0 auto;
}

.cp-page-full > .cp-content {
	width: 100%;
	max-width: 1200px;
}

/* Article principal en internas: padding generoso */
.cp-page-full > .cp-content,
.cp-page-full > article.cp-content {
	padding: 32px;
	background: var(--cp-surface, #161b22);
	border-radius: 14px;
	border: 1px solid var(--cp-border, #30363d);
}

@media (max-width: 720px) {
	.cp-page-full > .cp-content,
	.cp-page-full > article.cp-content {
		padding: 20px;
	}
}

/* =========================================================
 * SINGLE CASINO header
 * ========================================================= */
.cp-casino-header {
	display: flex;
	gap: 24px;
	align-items: center;
	margin-bottom: 28px;
	padding-bottom: 24px;
	border-bottom: 1px solid var(--cp-border, #30363d);
	flex-wrap: wrap;
}
.cp-casino-logo-wrap {
	flex-shrink: 0;
	background: #fff;
	border-radius: 12px;
	padding: 12px;
	width: 160px;
	height: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cp-casino-logo-wrap img {
	max-width: 100%;
	max-height: 100%;
	object-fit: contain;
}
.cp-casino-title-wrap {
	flex: 1;
	min-width: 240px;
}
.cp-casino-title {
	margin: 0 0 12px;
	font-size: clamp(1.6rem, 3vw, 2.2rem);
	color: var(--cp-text, #e6edf3);
}
.cp-casino-rating-big {
	display: flex;
	align-items: baseline;
	gap: 6px;
	margin: 8px 0 16px;
}
.cp-casino-rating-big .cp-rating-num {
	font-size: 2.2rem;
	font-weight: 800;
	color: var(--cp-accent, #f1c40f);
	line-height: 1;
}
.cp-casino-rating-big .cp-rating-max {
	font-size: 1.1rem;
	color: var(--cp-text-muted, #8b949e);
}
.cp-casino-rating-big small {
	margin-left: 8px;
	color: var(--cp-text-muted, #8b949e);
	font-size: .85rem;
}
.cp-casino-cta { margin-top: 12px; }

/* Meta grid (bono, licencia, rating editor, rating users) */
.cp-casino-meta-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 16px;
	margin: 24px 0 32px;
}
.cp-meta-item {
	background: rgba(255,255,255,.03);
	padding: 14px 16px;
	border-radius: 10px;
	border: 1px solid var(--cp-border, #30363d);
	font-size: .92rem;
	color: var(--cp-text, #e6edf3);
}
.cp-meta-item strong {
	color: var(--cp-text-muted, #8b949e);
	font-weight: 600;
	font-size: .82rem;
	text-transform: uppercase;
	letter-spacing: .5px;
	display: block;
	margin-bottom: 4px;
}

.cp-casino-content {
	color: var(--cp-text, #e6edf3);
	line-height: 1.75;
}

/* Bottom CTA en single casino */
.cp-casino-bottom-cta {
	margin-top: 40px;
	padding: 32px;
	background: linear-gradient(135deg, var(--cp-primary, #e63946), var(--cp-secondary, #1d3557));
	border-radius: 14px;
	text-align: center;
	color: #fff;
}
.cp-casino-bottom-cta h3 {
	color: #fff;
	margin: 0 0 12px;
	font-size: 1.5rem;
}
.cp-bottom-cta-bonus {
	font-size: 1.1rem;
	color: #fff;
	margin: 0 0 16px;
	opacity: .95;
}
.cp-casino-bottom-cta .cp-btn {
	background: #fff;
	color: var(--cp-primary, #e63946);
	font-weight: 700;
}
.cp-casino-bottom-cta .cp-btn:hover {
	background: var(--cp-accent, #f1c40f);
	color: #000;
}
.cp-bottom-cta-note {
	display: block;
	margin-top: 14px;
	font-size: .82rem;
	opacity: .8;
	color: #fff;
}

/* =========================================================
 * SINGLE THREAD / RECLAMO / BIGWIN — headers internos
 * ========================================================= */
.cp-thread-header,
.cp-reclamo-header,
.cp-bigwin-header {
	margin-bottom: 24px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--cp-border, #30363d);
}
.cp-thread-header h1,
.cp-reclamo-header h1,
.cp-bigwin-header h1 {
	margin: 8px 0 12px;
	color: var(--cp-text, #e6edf3);
	font-size: clamp(1.5rem, 3vw, 2rem);
}
.cp-thread-meta,
.cp-reclamo-meta,
.cp-bigwin-meta {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	font-size: .9rem;
	color: var(--cp-text-muted, #8b949e);
}
.cp-thread-meta time,
.cp-reclamo-meta time,
.cp-bigwin-meta time { opacity: .8; }
.cp-thread-flags { margin-bottom: 8px; }
.cp-flag {
	display: inline-block;
	background: rgba(255,255,255,.06);
	padding: 4px 10px;
	border-radius: 6px;
	font-size: .82rem;
	margin-right: 6px;
}
.cp-flag-pin { background: rgba(241,196,15,.15); color: var(--cp-accent, #f1c40f); }
.cp-flag-lock { background: rgba(218,54,51,.15); color: var(--cp-danger, #da3633); }

.cp-thread-content,
.cp-reclamo-content,
.cp-bigwin-content {
	color: var(--cp-text, #e6edf3);
	line-height: 1.75;
	font-size: 1.05rem;
}

.cp-thread-actions,
.cp-bigwin-actions {
	display: flex;
	gap: 12px;
	margin-top: 24px;
	padding-top: 20px;
	border-top: 1px solid var(--cp-border, #30363d);
	flex-wrap: wrap;
}

.cp-bigwin-image {
	margin: 20px 0;
	border-radius: 12px;
	overflow: hidden;
}
.cp-bigwin-image img { width: 100%; height: auto; display: block; }

.cp-bigwin-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 14px;
	margin: 24px 0;
}
.cp-bigwin-stat {
	background: rgba(255,255,255,.04);
	padding: 14px 16px;
	border-radius: 10px;
	border: 1px solid var(--cp-border, #30363d);
}
.cp-bigwin-stat .cp-stat-label {
	display: block;
	font-size: .78rem;
	text-transform: uppercase;
	color: var(--cp-text-muted, #8b949e);
	letter-spacing: .5px;
	margin-bottom: 4px;
}
.cp-bigwin-stat strong {
	color: var(--cp-accent, #f1c40f);
	font-size: 1.15rem;
}
.cp-bigwin-stat strong a {
	color: var(--cp-primary, #e63946);
}

.cp-reclamo-proof {
	background: rgba(241,196,15,.08);
	border: 1px solid var(--cp-warning, #d29922);
	padding: 14px 16px;
	border-radius: 10px;
	margin: 16px 0;
}
.cp-reclamo-mod-actions,
.cp-reclamo-respond {
	margin: 20px 0;
	padding: 18px;
	background: rgba(255,255,255,.04);
	border-radius: 10px;
	border: 1px solid var(--cp-border, #30363d);
}
.cp-reclamo-mod-actions strong { color: var(--cp-text, #e6edf3); display: block; margin-bottom: 10px; }
.cp-reclamo-mod-actions .cp-btn { margin: 4px 6px 4px 0; }
.cp-reclamo-respond textarea {
	width: 100%;
	background: var(--cp-bg, #0d1117);
	color: var(--cp-text, #e6edf3);
	border: 1px solid var(--cp-border, #30363d);
	padding: 10px 12px;
	border-radius: 8px;
	font-family: inherit;
	margin-bottom: 10px;
}

/* =========================================================
 * ARCHIVE pages
 * ========================================================= */
.cp-archive-head {
	text-align: center;
	margin-bottom: 32px;
	padding: 32px 20px;
	background: linear-gradient(135deg, var(--cp-secondary, #1d3557), var(--cp-bg, #0d1117));
	border-radius: 14px;
	border: 1px solid var(--cp-border, #30363d);
}
.cp-archive-head h1 {
	color: var(--cp-text, #e6edf3);
	margin: 0 0 8px;
	font-size: clamp(1.8rem, 3.5vw, 2.4rem);
}
.cp-archive-head p {
	color: var(--cp-text-muted, #8b949e);
	margin: 0 0 16px;
	max-width: 640px;
	margin-left: auto;
	margin-right: auto;
}
.cp-archive-head .cp-btn {
	margin-top: 12px;
}

/* En full-width, las grids/listas necesitan ancho del article */
.cp-page-full .cp-content > .cp-grid,
.cp-page-full .cp-content > .cp-reclamos-list,
.cp-page-full .cp-content > .cp-forum-list {
	margin-bottom: 24px;
}

/* =========================================================
 * CONTRAST DEFENSIVE RULES
 * Garantiza legibilidad sin importar el esquema de color elegido.
 * ========================================================= */

/* Texto principal siempre con color text */
.cp-page-layout, .cp-page-full,
.cp-page-layout p, .cp-page-full p,
.cp-page-layout li, .cp-page-full li {
	color: var(--cp-text, #e6edf3);
}

/* Headings */
.cp-page-layout h1, .cp-page-full h1,
.cp-page-layout h2, .cp-page-full h2,
.cp-page-layout h3, .cp-page-full h3,
.cp-page-layout h4, .cp-page-full h4,
.cp-page-layout h5, .cp-page-full h5,
.cp-page-layout h6, .cp-page-full h6 {
	color: var(--cp-text, #e6edf3);
}

/* Links: usar primary, hover accent */
.cp-content a:not(.cp-btn):not(.cp-tag):not(.cp-vote) {
	color: var(--cp-primary, #e63946);
	text-decoration: none;
	border-bottom: 1px solid transparent;
	transition: border-color .15s;
}
.cp-content a:not(.cp-btn):not(.cp-tag):not(.cp-vote):hover {
	border-bottom-color: var(--cp-primary, #e63946);
}

/* Texto muted: garantizar opacidad mínima */
.cp-text-muted,
.cp-thread-meta,
.cp-reclamo-meta,
.cp-bigwin-meta,
.cp-archive-head p,
.cp-form-help,
small {
	color: var(--cp-text-muted, #8b949e);
}

/* Empty states */
.cp-empty {
	color: var(--cp-text-muted, #8b949e);
	font-style: italic;
	padding: 24px;
	text-align: center;
	background: rgba(255,255,255,.02);
	border-radius: 10px;
	border: 1px dashed var(--cp-border, #30363d);
	margin: 16px 0;
}

/* Inputs / selects / textareas — garantizar contraste */
.cp-page-layout input[type="text"],
.cp-page-layout input[type="email"],
.cp-page-layout input[type="url"],
.cp-page-layout input[type="number"],
.cp-page-layout input[type="search"],
.cp-page-layout select,
.cp-page-layout textarea,
.cp-page-full input[type="text"],
.cp-page-full input[type="email"],
.cp-page-full input[type="url"],
.cp-page-full input[type="number"],
.cp-page-full input[type="search"],
.cp-page-full select,
.cp-page-full textarea {
	background: var(--cp-bg, #0d1117);
	color: var(--cp-text, #e6edf3);
	border: 1px solid var(--cp-border, #30363d);
	padding: 10px 12px;
	border-radius: 8px;
	font-family: inherit;
	font-size: .95rem;
	width: 100%;
	max-width: 100%;
}
.cp-page-layout input[disabled],
.cp-page-full input[disabled],
.cp-page-layout input[readonly],
.cp-page-full input[readonly] {
	opacity: .6;
}

/* Forms label legible */
.cp-form label,
.cp-page-full label {
	color: var(--cp-text, #e6edf3);
	font-weight: 600;
	display: block;
	margin-bottom: 6px;
	font-size: .92rem;
}

/* Tables (leaderboard) */
.cp-page-full table, .cp-page-layout table {
	width: 100%;
	border-collapse: collapse;
	margin: 16px 0;
	color: var(--cp-text, #e6edf3);
}
.cp-page-full th, .cp-page-layout th {
	text-align: left;
	padding: 12px 14px;
	background: rgba(255,255,255,.04);
	color: var(--cp-text, #e6edf3);
	font-size: .82rem;
	text-transform: uppercase;
	letter-spacing: .5px;
	border-bottom: 2px solid var(--cp-border, #30363d);
}
.cp-page-full td, .cp-page-layout td {
	padding: 12px 14px;
	border-bottom: 1px solid var(--cp-border, #30363d);
	color: var(--cp-text, #e6edf3);
}

/* Comments section dentro de internas */
.cp-comments {
	margin-top: 24px;
	color: var(--cp-text, #e6edf3);
}
.cp-comments-title {
	color: var(--cp-text, #e6edf3);
	margin-bottom: 16px;
	font-size: 1.3rem;
}
.cp-comments-list {
	list-style: none;
	padding: 0;
}
.cp-comments-list li {
	padding: 16px 0;
	border-bottom: 1px solid var(--cp-border, #30363d);
}
.cp-comments .comment-form-comment textarea {
	width: 100%;
	min-height: 100px;
	background: var(--cp-bg, #0d1117);
	color: var(--cp-text, #e6edf3);
	border: 1px solid var(--cp-border, #30363d);
	padding: 12px;
	border-radius: 8px;
	resize: vertical;
}

/* Pagination */
.cp-pagination {
	margin: 32px 0;
	text-align: center;
}
.cp-pagination .page-numbers {
	display: inline-block;
	padding: 8px 14px;
	margin: 0 4px;
	background: rgba(255,255,255,.04);
	color: var(--cp-text, #e6edf3);
	border-radius: 8px;
	border: 1px solid var(--cp-border, #30363d);
	text-decoration: none;
}
.cp-pagination .page-numbers.current {
	background: var(--cp-primary, #e63946);
	color: #fff;
	border-color: var(--cp-primary, #e63946);
}
.cp-pagination .page-numbers:hover:not(.current) {
	background: rgba(255,255,255,.1);
}

/* Section interna en single (reclamos del casino, opiniones, etc.) */
.cp-page-full .cp-section {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid var(--cp-border, #30363d);
}
.cp-page-full .cp-section h2 {
	font-size: 1.4rem;
	margin-bottom: 16px;
}


/* =========================================================
 * AFFILIATE LAYOUT v2 — diseño profesional tipo casino.org
 * ========================================================= */

/* === Section heads con subtítulo === */
.cp-section-head {
	display: flex;
	justify-content: space-between;
	align-items: flex-end;
	gap: 16px;
	margin-bottom: 20px;
	flex-wrap: wrap;
}
.cp-section-head h2 {
	margin: 0;
	font-size: clamp(1.3rem, 2.4vw, 1.7rem);
	font-weight: 800;
	color: var(--cp-text);
	letter-spacing: -.3px;
	line-height: 1.2;
}
.cp-section-subtitle {
	display: block;
	margin-top: 6px;
	font-size: .9rem;
	font-weight: 400;
	color: var(--cp-text-muted);
	letter-spacing: 0;
	text-transform: none;
}
.cp-section-link {
	color: var(--cp-primary) !important;
	font-weight: 600;
	font-size: .92rem;
	text-decoration: none !important;
	border-bottom: 0 !important;
	white-space: nowrap;
}
.cp-section-link:hover { color: var(--cp-accent) !important; }

/* === HERO con casino destacado === */
.cp-affhero {
	padding: 60px 0 50px;
	background:
		radial-gradient(ellipse at 80% 20%, rgba(230,57,70,.12), transparent 60%),
		radial-gradient(ellipse at 20% 80%, rgba(241,196,15,.08), transparent 50%),
		linear-gradient(180deg, var(--cp-bg) 0%, var(--cp-surface) 100%);
	border-bottom: 1px solid var(--cp-border);
	position: relative;
	overflow: hidden;
}
.cp-affhero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px);
	background-size: 100% 40px;
	opacity: .4;
	pointer-events: none;
}
.cp-affhero-grid {
	position: relative;
	max-width: 1240px;
	margin: 0 auto;
	padding: 0 24px;
	display: grid;
	grid-template-columns: 1.2fr 1fr;
	gap: 50px;
	align-items: center;
}
@media (max-width: 900px) {
	.cp-affhero-grid { grid-template-columns: 1fr; gap: 36px; }
	.cp-affhero { padding: 40px 0 36px; }
}

/* === Hero FULL WIDTH (rompe cualquier wrapper limitante) === */
.cp-affhero-fullwidth {
	width: 100vw;
	margin-left: calc(-50vw + 50%);
	margin-right: calc(-50vw + 50%);
	max-width: 100vw;
	padding: 80px 0 70px;
}
@media (max-width: 900px) {
	.cp-affhero-fullwidth {
		padding: 48px 0 40px;
	}
}
/* Margen superior negativo para pegar al header sin gap */
.cp-front-affiliate + .cp-affhero-fullwidth,
.cp-affhero-fullwidth:first-child {
	margin-top: 0;
}
/* Espacio después del hero para el siguiente bloque */
.cp-front-after-hero {
	padding-top: 24px;
}

.cp-affhero-eyebrow {
	display: inline-block;
	font-family: var(--cp-font-heading, 'Bungee'), 'Bungee', cursive;
	font-size: .85rem;
	font-weight: 400;
	color: var(--cp-accent);
	letter-spacing: 3px;
	margin-bottom: 18px;
	padding: 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	text-transform: uppercase;
	position: relative;
	padding-left: 36px;
}
.cp-affhero-eyebrow::before {
	content: '';
	position: absolute;
	left: 0;
	top: 50%;
	width: 24px;
	height: 2px;
	background: var(--cp-accent);
	transform: translateY(-50%);
}
.cp-affhero-title {
	font-size: clamp(2rem, 4.5vw, 3.4rem);
	font-weight: 900;
	line-height: 1.05;
	color: var(--cp-text);
	margin: 0 0 18px;
	letter-spacing: -1.5px;
}
.cp-affhero-title-accent {
	display: block;
	background: linear-gradient(135deg, var(--cp-primary), var(--cp-accent));
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
}
.cp-affhero-sub {
	font-size: 1.08rem;
	color: var(--cp-text-muted);
	line-height: 1.6;
	max-width: 520px;
	margin: 0 0 28px;
}

.cp-affhero-stats {
	display: flex;
	gap: 32px;
	margin-bottom: 32px;
	flex-wrap: wrap;
}
.cp-affhero-stat strong {
	display: block;
	font-size: 1.8rem;
	font-weight: 900;
	color: var(--cp-text);
	letter-spacing: -1px;
	line-height: 1;
}
.cp-affhero-stat small {
	display: block;
	font-size: .82rem;
	color: var(--cp-text-muted);
	margin-top: 4px;
	font-weight: 500;
}

.cp-affhero-cta { display: flex; gap: 12px; flex-wrap: wrap; }

/* Featured casino card en hero */
.cp-affhero-feature-card {
	position: relative;
	background: linear-gradient(135deg, rgba(230,57,70,.08), rgba(241,196,15,.04));
	border: 1px solid rgba(241,196,15,.25);
	border-radius: 20px;
	padding: 28px 26px 24px;
	box-shadow: 0 20px 60px rgba(0,0,0,.4), 0 0 0 1px rgba(255,255,255,.04);
	backdrop-filter: blur(8px);
	text-align: center;
}
.cp-affhero-feature-badge {
	display: inline-block;
	background: transparent;
	color: var(--cp-accent);
	font-family: var(--cp-font-heading, 'Bungee'), 'Bungee', cursive;
	font-size: .8rem;
	font-weight: 400;
	letter-spacing: 2px;
	padding: 0 0 8px;
	border-radius: 0;
	margin-bottom: 14px;
	box-shadow: none;
	border-bottom: 2px solid var(--cp-accent);
	text-transform: uppercase;
}
.cp-affhero-feature-logo {
	width: 120px;
	height: 80px;
	margin: 0 auto 16px;
	background: #fff;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	box-shadow: 0 6px 20px rgba(0,0,0,.3);
}
.cp-affhero-feature-logo img { max-width: 80%; max-height: 80%; object-fit: contain; }
.cp-affhero-feature-fallback {
	font-size: 2.4rem;
	font-weight: 900;
	color: var(--cp-primary);
}
.cp-affhero-feature-title {
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--cp-text) !important;
	margin: 0 0 8px;
	letter-spacing: -.5px;
}
.cp-affhero-feature-rating {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-bottom: 18px;
}
.cp-affhero-feature-stars { color: var(--cp-accent); font-size: 1rem; letter-spacing: 2px; }
.cp-affhero-feature-num { color: var(--cp-text-muted); font-weight: 700; font-size: .92rem; }

.cp-affhero-feature-bonus {
	background: rgba(0,0,0,.3);
	border: 1px dashed var(--cp-accent);
	border-radius: 14px;
	padding: 16px 18px;
	margin-bottom: 18px;
}
.cp-affhero-feature-bonus-label {
	display: block;
	font-size: .72rem;
	font-weight: 700;
	color: var(--cp-accent);
	letter-spacing: 1px;
	margin-bottom: 4px;
}
.cp-affhero-feature-bonus strong {
	display: block;
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--cp-text);
	line-height: 1.3;
}

.cp-affhero-feature-cta {
	display: block;
	width: 100%;
	padding: 16px 20px;
	background: linear-gradient(135deg, var(--cp-primary), #c1121f);
	color: #fff !important;
	font-weight: 800;
	text-align: center;
	border-radius: 12px;
	text-decoration: none !important;
	border-bottom: 0 !important;
	font-size: 1.05rem;
	letter-spacing: .3px;
	box-shadow: 0 8px 24px rgba(230,57,70,.4);
	transition: transform .15s, box-shadow .15s;
}
.cp-affhero-feature-cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 30px rgba(230,57,70,.5);
}
.cp-affhero-feature-link {
	display: block;
	margin-top: 14px;
	color: var(--cp-text-muted) !important;
	font-size: .88rem;
	text-decoration: none !important;
	border-bottom: 0 !important;
}
.cp-affhero-feature-link:hover { color: var(--cp-primary) !important; }
.cp-affhero-feature-disclaimer {
	display: block;
	margin-top: 12px;
	font-size: .72rem;
	color: var(--cp-text-muted);
	opacity: .7;
	line-height: 1.4;
}

.cp-affhero-feature-empty {
	text-align: center;
	padding: 50px 30px;
	background: rgba(255,255,255,.02);
	border: 2px dashed var(--cp-border);
	border-radius: 20px;
}
.cp-affhero-feature-empty h3 {
	color: var(--cp-text);
	margin: 12px 0 8px;
	font-size: 1.15rem;
}
.cp-affhero-feature-empty p {
	color: var(--cp-text-muted);
	font-size: .92rem;
	line-height: 1.5;
	margin-bottom: 16px;
}

/* === BONUS GRID (cards estilo casino.org) === */
.cp-section-bonus-grid { padding-top: 50px; }
.cp-bonus-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
}
@media (max-width: 1100px) { .cp-bonus-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 800px)  { .cp-bonus-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 500px)  { .cp-bonus-grid { grid-template-columns: 1fr; } }

.cp-bonus-card {
	position: relative;
	background: linear-gradient(160deg, var(--brand-from, #1e293b) 0%, var(--brand-to, #0f172a) 100%);
	border: 1px solid rgba(255,255,255,.08);
	border-radius: 18px;
	padding: 24px 20px 20px;
	display: flex;
	flex-direction: column;
	align-items: center;
	text-align: center;
	color: #fff !important;
	min-height: 380px;
	transition: transform .2s, box-shadow .2s;
	overflow: hidden;
	isolation: isolate;
}
.cp-bonus-card::before {
	content: '';
	position: absolute;
	inset: 0;
	background: radial-gradient(circle at 50% 0%, rgba(255,255,255,.12), transparent 60%);
	pointer-events: none;
	z-index: -1;
}
.cp-bonus-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 20px 40px rgba(0,0,0,.4);
}
.cp-bonus-card-flag {
	position: absolute;
	top: 14px;
	left: 14px;
	background: rgba(241,196,15,.95);
	color: #000;
	font-size: .65rem;
	font-weight: 800;
	letter-spacing: .8px;
	padding: 4px 10px;
	border-radius: 6px;
	z-index: 2;
}
.cp-bonus-card-logo {
	height: 80px;
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 18px;
	filter: drop-shadow(0 4px 12px rgba(0,0,0,.4));
}
.cp-bonus-card-logo img {
	max-width: 80%;
	max-height: 80%;
	object-fit: contain;
}
.cp-bonus-card-fallback {
	font-size: 1.4rem;
	font-weight: 900;
	color: #fff;
	text-transform: uppercase;
	letter-spacing: -.5px;
	font-family: var(--cp-font-heading);
	max-width: 90%;
}
.cp-bonus-card-flag-geo {
	display: flex;
	align-items: center;
	gap: 6px;
	margin-bottom: 14px;
	font-size: 1.1rem;
}
.cp-bonus-card-check {
	display: inline-flex;
	width: 20px;
	height: 20px;
	background: #16a34a;
	color: #fff;
	border-radius: 50%;
	align-items: center;
	justify-content: center;
	font-size: .7rem;
	font-weight: 800;
}
.cp-bonus-card-bonus {
	font-size: 1.05rem;
	font-weight: 700;
	color: #fff !important;
	margin: 0 0 6px;
	line-height: 1.3;
	letter-spacing: -.3px;
	min-height: 2.6em;
	display: flex;
	align-items: center;
	justify-content: center;
}
.cp-bonus-card-name {
	font-size: .82rem;
	color: rgba(255,255,255,.75) !important;
	margin: 0 0 18px;
	font-weight: 500;
}
.cp-bonus-card-cta {
	display: block;
	width: 100%;
	padding: 12px 16px;
	background: #fff;
	color: var(--brand-to, #0f172a) !important;
	font-weight: 800;
	font-size: .95rem;
	text-align: center;
	border-radius: 999px;
	text-decoration: none !important;
	border-bottom: 0 !important;
	transition: transform .15s, background-color .15s;
	margin-bottom: 14px;
}
.cp-bonus-card-cta:hover {
	transform: scale(1.02);
	background: var(--cp-accent);
}
.cp-bonus-card-stats {
	font-size: .72rem;
	color: rgba(255,255,255,.6) !important;
	margin-top: auto;
}

/* === LISTA DE CASINOS DETALLADOS === */
.cp-section-casinos-detail { padding-top: 50px; }
.cp-casino-list {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.cp-casino-row {
	display: grid;
	grid-template-columns: 50px 110px 1fr 240px;
	gap: 20px;
	align-items: center;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 16px;
	padding: 20px 24px;
	transition: transform .15s, border-color .15s, box-shadow .15s;
	position: relative;
}
.cp-casino-row:hover {
	transform: translateY(-2px);
	border-color: var(--cp-primary);
	box-shadow: 0 12px 30px rgba(0,0,0,.25);
}
.cp-casino-row-sponsored {
	background: linear-gradient(135deg, var(--cp-surface), rgba(241,196,15,.04));
	border-color: rgba(241,196,15,.25);
}
@media (max-width: 900px) {
	.cp-casino-row {
		grid-template-columns: 80px 1fr;
		grid-template-areas:
			'logo info'
			'cta cta';
		gap: 14px;
		padding: 18px;
	}
	.cp-casino-row-rank { display: none; }
	.cp-casino-row-logo { grid-area: logo; width: 80px; height: 60px; }
	.cp-casino-row-info { grid-area: info; }
	.cp-casino-row-cta  { grid-area: cta; flex-direction: row; align-items: center; justify-content: space-between; }
}

.cp-casino-row-rank {
	font-size: 2rem;
	font-weight: 900;
	color: var(--cp-text-muted);
	text-align: center;
	letter-spacing: -1px;
}
.cp-casino-row:nth-child(1) .cp-casino-row-rank { color: var(--cp-accent); }
.cp-casino-row:nth-child(2) .cp-casino-row-rank { color: #d4d4d8; }
.cp-casino-row:nth-child(3) .cp-casino-row-rank { color: #b78328; }

.cp-casino-row-logo {
	width: 100%;
	height: 70px;
	background: #fff;
	border-radius: 12px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	box-shadow: 0 4px 12px rgba(0,0,0,.2);
}
.cp-casino-row-logo img { max-width: 75%; max-height: 75%; object-fit: contain; }
.cp-casino-row-fallback {
	font-size: 1.8rem;
	font-weight: 900;
	color: var(--cp-primary);
	background: linear-gradient(135deg, #fff, #f1f5f9);
	width: 100%;
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cp-casino-row-info { min-width: 0; }
.cp-casino-row-head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 10px;
	flex-wrap: wrap;
}
.cp-casino-row-title {
	margin: 0;
	font-size: 1.2rem;
	font-weight: 800;
	color: var(--cp-text) !important;
	letter-spacing: -.3px;
}
.cp-casino-row-title a {
	color: var(--cp-text) !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
}
.cp-casino-row-title a:hover { color: var(--cp-primary) !important; }

.cp-casino-row-features {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 6px 16px;
	font-size: .85rem;
	color: var(--cp-text-muted);
}
.cp-casino-row-features li {
	padding: 0 !important;
	background: transparent !important;
	border: 0 !important;
}
.cp-casino-row-features strong {
	color: var(--cp-text);
	font-weight: 600;
	margin-right: 4px;
}
@media (max-width: 600px) {
	.cp-casino-row-features { grid-template-columns: 1fr; }
}

.cp-casino-row-cta {
	display: flex;
	flex-direction: column;
	align-items: stretch;
	gap: 8px;
}
.cp-casino-row-bonus {
	background: rgba(241,196,15,.1);
	border: 1px solid rgba(241,196,15,.25);
	border-radius: 10px;
	padding: 8px 12px;
	text-align: center;
	margin-bottom: 4px;
}
.cp-casino-row-bonus small {
	display: block;
	font-size: .65rem;
	font-weight: 800;
	color: var(--cp-accent);
	letter-spacing: 1px;
	margin-bottom: 2px;
}
.cp-casino-row-bonus strong {
	display: block;
	font-size: .92rem;
	color: var(--cp-text);
	font-weight: 700;
	line-height: 1.3;
}
.cp-casino-row-cta-btn {
	width: 100%;
	font-weight: 800 !important;
	letter-spacing: .3px;
}
.cp-casino-row-cta-link {
	font-size: .82rem;
	color: var(--cp-text-muted) !important;
	text-align: center;
	text-decoration: none !important;
	border-bottom: 0 !important;
}
.cp-casino-row-cta-link:hover { color: var(--cp-primary) !important; }

/* === BIG WINS CAROUSEL === */
.cp-section-bigwins-carousel { padding-top: 50px; }
.cp-carousel { position: relative; margin-top: 8px; }
.cp-carousel-track {
	display: flex;
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding: 4px 0 16px;
	-webkit-overflow-scrolling: touch;
}
.cp-carousel-track::-webkit-scrollbar { height: 6px; }
.cp-carousel-track::-webkit-scrollbar-track { background: var(--cp-border); border-radius: 3px; }
.cp-carousel-track::-webkit-scrollbar-thumb { background: var(--cp-primary); border-radius: 3px; }

.cp-carousel-card {
	flex: 0 0 280px;
	scroll-snap-align: start;
	background: linear-gradient(135deg, var(--cp-surface) 0%, rgba(241,196,15,.04) 100%);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
	padding: 18px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: transform .2s, border-color .2s, box-shadow .2s;
}
.cp-carousel-card:hover {
	transform: translateY(-3px);
	border-color: var(--cp-accent);
	box-shadow: 0 8px 24px rgba(241,196,15,.12);
}
.cp-carousel-card-head { display: flex; align-items: center; gap: 10px; }
.cp-carousel-card-author { display: flex; flex-direction: column; font-size: .82rem; }
.cp-carousel-card-author strong { color: var(--cp-text); font-size: .9rem; }
.cp-carousel-card-author time { color: var(--cp-text-muted); font-size: .78rem; }
.cp-carousel-card-amount {
	font-size: 1.55rem;
	font-weight: 900;
	color: var(--cp-accent) !important;
	margin: 4px 0;
	border-bottom: 0 !important;
	letter-spacing: -.5px;
	display: block;
	text-decoration: none !important;
}
.cp-carousel-card-amount:hover { color: var(--cp-primary) !important; }
.cp-carousel-card-title {
	font-size: 1rem;
	font-weight: 700;
	color: var(--cp-text) !important;
	line-height: 1.35;
	border-bottom: 0 !important;
	display: block;
	text-decoration: none !important;
}
.cp-carousel-card-title:hover { color: var(--cp-primary) !important; }
.cp-carousel-card-game,
.cp-carousel-card-casino {
	font-size: .85rem;
	color: var(--cp-text-muted);
	margin: 0;
}
.cp-carousel-card-casino a { color: var(--cp-primary) !important; font-weight: 600; }

.cp-carousel-arrow {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	z-index: 2;
	background: var(--cp-primary);
	color: #fff;
	border: none;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	font-size: 1.6rem;
	cursor: pointer;
	box-shadow: 0 4px 12px rgba(0,0,0,.3);
	transition: background-color .2s, transform .2s;
	font-weight: 800;
	line-height: 1;
}
.cp-carousel-arrow:hover {
	background: var(--cp-secondary);
	transform: translateY(-50%) scale(1.05);
}
.cp-carousel-prev { left: -10px; }
.cp-carousel-next { right: -10px; }
@media (max-width: 720px) {
	.cp-carousel-arrow { display: none; }
	.cp-carousel-card { flex: 0 0 240px; }
}

/* === RECLAMOS COMPACTOS (FIX) === */
.cp-cols-2-asym {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 24px;
	margin-top: 50px;
}
@media (max-width: 900px) { .cp-cols-2-asym { grid-template-columns: 1fr; } }

.cp-reclamos-compact {
	display: flex;
	flex-direction: column;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
	overflow: hidden;
	list-style: none;
	padding: 0;
	margin: 0;
}
.cp-reclamo-compact {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 20px;
	border-bottom: 1px solid var(--cp-border);
	transition: background-color .15s;
	color: var(--cp-text) !important;
	text-decoration: none !important;
	border-bottom-color: var(--cp-border) !important;
}
.cp-reclamo-compact:last-child { border-bottom: 0 !important; }
.cp-reclamo-compact:hover { background: rgba(255,255,255,.03); }
.cp-reclamo-compact-main { flex: 1; min-width: 0; }
.cp-reclamo-compact-title {
	display: block;
	color: var(--cp-text) !important;
	font-weight: 600;
	font-size: .98rem;
	margin-bottom: 6px;
	line-height: 1.3;
}
.cp-reclamo-compact:hover .cp-reclamo-compact-title { color: var(--cp-primary) !important; }
.cp-reclamo-compact-meta {
	display: flex;
	align-items: center;
	gap: 10px;
	flex-wrap: wrap;
	font-size: .82rem;
	color: var(--cp-text-muted);
}
.cp-reclamo-compact-arrow {
	font-size: 1.2rem;
	color: var(--cp-text-muted);
	flex-shrink: 0;
	transition: transform .15s, color .15s;
}
.cp-reclamo-compact:hover .cp-reclamo-compact-arrow {
	color: var(--cp-primary);
	transform: translateX(4px);
}

.cp-status-badge {
	display: inline-block;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: .7rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .5px;
}
.cp-status-pending       { background: rgba(241,196,15,.15); color: var(--cp-accent); }
.cp-status-investigating { background: rgba(56,139,253,.15); color: #58a6ff; }
.cp-status-resolved      { background: rgba(46,160,67,.15);  color: #2ea043; }
.cp-status-rejected      { background: rgba(218,54,51,.15);  color: var(--cp-danger); }

.cp-reclamo-compact-amount { font-weight: 700; color: var(--cp-text); }
.cp-reclamo-compact-casino { font-style: italic; opacity: .8; }

/* === QUICK CATEGORIES === */
.cp-quick-cats {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 12px;
}
.cp-quick-cat {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 12px;
	color: var(--cp-text) !important;
	border-bottom: 0 !important;
	text-decoration: none !important;
	transition: transform .15s, border-color .15s, background-color .15s;
}
.cp-quick-cat:hover {
	transform: translateY(-2px);
	border-color: var(--cp-primary);
	background: rgba(230,57,70,.05);
}
.cp-quick-cat-icon { font-size: 1.6rem; line-height: 1; }
.cp-quick-cat-name { font-weight: 600; font-size: .92rem; }

/* === RATING PILLS === */
.cp-rating-pill {
	display: inline-block;
	padding: 6px 12px;
	border-radius: 999px;
	font-weight: 800;
	font-size: .9rem;
	letter-spacing: -.3px;
	white-space: nowrap;
}
.cp-rating-excellent {
	background: linear-gradient(135deg, #2ea043, #46c463);
	color: #fff !important;
	box-shadow: 0 2px 8px rgba(46,160,67,.3);
}
.cp-rating-good {
	background: linear-gradient(135deg, var(--cp-accent), #d4a017);
	color: #000 !important;
	box-shadow: 0 2px 8px rgba(241,196,15,.3);
}
.cp-rating-ok {
	background: rgba(255,255,255,.08);
	color: var(--cp-text) !important;
	border: 1px solid var(--cp-border);
}

.cp-cell-sponsored {
	display: inline-block;
	font-size: .65rem;
	font-weight: 800;
	background: var(--cp-accent);
	color: #000;
	padding: 3px 8px;
	border-radius: 6px;
	letter-spacing: .5px;
	text-transform: uppercase;
	margin-left: 6px;
}

/* === EMPTY BLOCKS === */
.cp-empty-block {
	text-align: center;
	padding: 50px 30px;
	background: var(--cp-surface);
	border: 2px dashed var(--cp-border);
	border-radius: 16px;
}
.cp-empty-block-sm { padding: 32px 24px; }
.cp-empty-illus {
	font-size: 3rem;
	line-height: 1;
	margin-bottom: 14px;
	opacity: .9;
}
.cp-empty-block h3 {
	color: var(--cp-text);
	margin: 0 0 8px;
	font-size: 1.15rem;
}
.cp-empty-block p {
	color: var(--cp-text-muted);
	font-size: .95rem;
	line-height: 1.5;
	max-width: 480px;
	margin: 0 auto 16px;
}

/* === TRUST STRIP === */
.cp-trust-strip {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 18px;
	margin-top: 50px;
	padding: 30px;
	background: linear-gradient(135deg, var(--cp-surface), rgba(29,53,87,.3));
	border: 1px solid var(--cp-border);
	border-radius: 16px;
}
@media (max-width: 900px) { .cp-trust-strip { grid-template-columns: repeat(2,1fr); } }
@media (max-width: 500px) { .cp-trust-strip { grid-template-columns: 1fr; } }
.cp-trust-item { display: flex; align-items: flex-start; gap: 12px; }
.cp-trust-icon { font-size: 1.8rem; flex-shrink: 0; line-height: 1; }
.cp-trust-item strong {
	display: block;
	color: var(--cp-text);
	font-size: .95rem;
	margin-bottom: 2px;
}
.cp-trust-item small {
	display: block;
	color: var(--cp-text-muted);
	font-size: .82rem;
	line-height: 1.4;
}

/* === FIX cards blancas (high specificity) === */
.cp-card,
article.cp-card,
.cp-casino-card,
.cp-bigwin-card,
.cp-reclamo-card,
.cp-thread-row,
.cp-mag-feature,
.cp-section .cp-card {
	background: var(--cp-surface) !important;
	color: var(--cp-text) !important;
	border: 1px solid var(--cp-border) !important;
}
.cp-card h1, .cp-card h2, .cp-card h3, .cp-card h4,
.cp-casino-card h3, .cp-casino-card h4 {
	color: var(--cp-text) !important;
}
.cp-logo-placeholder {
	background: var(--cp-primary) !important;
	color: #fff !important;
	font-weight: 800;
}

/* Spacing between sections */
.cp-front-affiliate > .cp-section { margin-top: 0; }
.cp-front-affiliate > .cp-cols-2-asym { margin-top: 50px; }

/* =========================================================
 * TIKITOKENS PAGE
 * ========================================================= */
.cp-tikitokens-page { max-width: 980px; }

.cp-tt-hero {
	text-align: center;
	padding: 50px 30px 40px;
	background:
		radial-gradient(ellipse at top, rgba(241,196,15,.15), transparent 60%),
		linear-gradient(180deg, var(--cp-surface), var(--cp-bg));
	border: 1px solid rgba(241,196,15,.2);
	border-radius: 22px;
	margin-bottom: 40px;
	position: relative;
	overflow: hidden;
}
.cp-tt-hero-icon {
	font-size: 4rem;
	line-height: 1;
	margin-bottom: 14px;
	filter: drop-shadow(0 4px 20px rgba(241,196,15,.4));
}
.cp-tt-hero-title {
	font-size: clamp(1.8rem, 4vw, 2.6rem);
	font-weight: 900;
	letter-spacing: -1px;
	margin: 0 0 12px;
	color: var(--cp-text);
}
.cp-tt-hero-accent {
	display: block;
	font-size: .65em;
	font-weight: 600;
	background: linear-gradient(135deg, var(--cp-accent), #f59e0b);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	color: transparent;
	margin-top: 6px;
}
.cp-tt-hero-sub {
	color: var(--cp-text-muted);
	font-size: 1.05rem;
	max-width: 600px;
	margin: 0 auto 28px;
	line-height: 1.6;
}

.cp-tt-userbadge {
	background: rgba(0,0,0,.3);
	border: 1px solid rgba(241,196,15,.25);
	border-radius: 16px;
	padding: 22px 28px;
	max-width: 700px;
	margin: 0 auto;
	backdrop-filter: blur(6px);
}
.cp-tt-userbadge-row {
	display: grid;
	grid-template-columns: auto 1fr 1fr;
	gap: 24px;
	align-items: center;
	text-align: left;
}
@media (max-width: 640px) {
	.cp-tt-userbadge-row { grid-template-columns: 1fr; gap: 14px; text-align: center; }
}
.cp-tt-userbadge-current {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	padding-right: 24px;
	border-right: 1px solid var(--cp-border);
}
@media (max-width: 640px) {
	.cp-tt-userbadge-current { border: 0; padding: 0; align-items: center; }
}
.cp-tt-userbadge-num {
	font-size: 2.4rem;
	font-weight: 900;
	color: var(--cp-accent);
	line-height: 1;
	letter-spacing: -1.5px;
}
.cp-tt-userbadge-label {
	font-size: .8rem;
	color: var(--cp-text-muted);
	text-transform: uppercase;
	letter-spacing: 1px;
	margin-top: 2px;
}
.cp-tt-userbadge-level small,
.cp-tt-userbadge-next small {
	display: block;
	font-size: .72rem;
	color: var(--cp-text-muted);
	text-transform: uppercase;
	letter-spacing: .8px;
	margin-bottom: 4px;
}
.cp-tt-userbadge-level strong,
.cp-tt-userbadge-next strong {
	display: block;
	font-size: 1.15rem;
	color: var(--cp-text);
	font-weight: 800;
}
.cp-tt-userbadge-needed {
	display: block;
	font-size: .82rem;
	color: var(--cp-accent);
	margin-top: 4px;
}
.cp-tt-progress {
	margin-top: 18px;
	background: rgba(255,255,255,.06);
	border-radius: 999px;
	height: 10px;
	overflow: hidden;
}
.cp-tt-progress-bar {
	height: 100%;
	background: linear-gradient(90deg, var(--cp-primary), var(--cp-accent));
	border-radius: 999px;
	transition: width .5s ease;
}

.cp-tt-cta-anon { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }

/* Explain grid */
.cp-tt-explain { margin-top: 50px; }
.cp-tt-explain-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	margin-top: 24px;
}
@media (max-width: 720px) { .cp-tt-explain-grid { grid-template-columns: 1fr; } }
.cp-tt-explain-item {
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
	padding: 22px;
	transition: transform .15s, border-color .15s;
}
.cp-tt-explain-item:hover { transform: translateY(-2px); border-color: var(--cp-accent); }
.cp-tt-explain-icon { font-size: 2rem; margin-bottom: 10px; line-height: 1; }
.cp-tt-explain-item h3 {
	margin: 0 0 8px;
	font-size: 1.1rem;
	color: var(--cp-text);
	font-weight: 700;
}
.cp-tt-explain-item p {
	margin: 0;
	color: var(--cp-text-muted);
	font-size: .92rem;
	line-height: 1.55;
}

/* Acciones */
.cp-tt-actions { margin-top: 50px; }
.cp-tt-actions-grid {
	display: flex;
	flex-direction: column;
	gap: 10px;
	margin-top: 22px;
}
.cp-tt-action {
	display: grid;
	grid-template-columns: 50px 1fr auto;
	gap: 16px;
	align-items: center;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 12px;
	padding: 16px 20px;
	transition: border-color .15s, transform .15s;
}
.cp-tt-action:hover {
	border-color: var(--cp-accent);
	transform: translateX(2px);
}
.cp-tt-action-bonus {
	background: linear-gradient(135deg, var(--cp-surface), rgba(218,54,51,.06));
	border-color: rgba(218,54,51,.2);
}
.cp-tt-action-icon {
	font-size: 1.8rem;
	line-height: 1;
	text-align: center;
}
.cp-tt-action-info strong {
	display: block;
	color: var(--cp-text);
	font-size: 1rem;
	font-weight: 700;
	margin-bottom: 2px;
}
.cp-tt-action-info small {
	display: block;
	color: var(--cp-text-muted);
	font-size: .85rem;
	line-height: 1.4;
}
.cp-tt-action-points {
	font-size: 1.4rem;
	font-weight: 900;
	color: var(--cp-accent);
	letter-spacing: -.5px;
	white-space: nowrap;
}
.cp-tt-action-points span {
	font-size: .65em;
	font-weight: 700;
	color: var(--cp-text-muted);
	margin-left: 2px;
	letter-spacing: 1px;
}

/* Niveles */
.cp-tt-levels { margin-top: 50px; }
.cp-tt-levels-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 22px;
}
.cp-tt-level {
	display: grid;
	grid-template-columns: 50px 1fr auto;
	gap: 16px;
	align-items: center;
	padding: 14px 18px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 10px;
	opacity: .55;
	transition: all .15s;
}
.cp-tt-level-achieved { opacity: 1; }
.cp-tt-level-current {
	background: linear-gradient(135deg, rgba(241,196,15,.08), var(--cp-surface));
	border-color: var(--cp-accent);
	box-shadow: 0 0 0 1px rgba(241,196,15,.2), 0 8px 24px rgba(241,196,15,.1);
}
.cp-tt-level-icon { font-size: 1.6rem; text-align: center; line-height: 1; }
.cp-tt-level-info strong {
	display: block;
	font-size: 1.05rem;
	color: var(--cp-text);
	font-weight: 700;
}
.cp-tt-level-info small {
	display: block;
	color: var(--cp-text-muted);
	font-size: .82rem;
	margin-top: 2px;
}
.cp-tt-level-flag {
	background: var(--cp-accent);
	color: #000;
	font-size: .72rem;
	font-weight: 800;
	padding: 4px 10px;
	border-radius: 999px;
	letter-spacing: .5px;
	text-transform: uppercase;
}
.cp-tt-level-check { color: #2ea043; font-size: 1.4rem; font-weight: 800; }

/* FAQ */
.cp-tt-faq { margin-top: 50px; }
.cp-tt-faq-item {
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 12px;
	margin-bottom: 10px;
	overflow: hidden;
}
.cp-tt-faq-item summary {
	cursor: pointer;
	padding: 16px 20px;
	font-weight: 600;
	color: var(--cp-text);
	font-size: 1rem;
	list-style: none;
	display: flex;
	justify-content: space-between;
	align-items: center;
	transition: background-color .15s;
}
.cp-tt-faq-item summary::-webkit-details-marker { display: none; }
.cp-tt-faq-item summary::after {
	content: '+';
	font-size: 1.4rem;
	font-weight: 400;
	color: var(--cp-text-muted);
	transition: transform .2s;
}
.cp-tt-faq-item[open] summary::after { transform: rotate(45deg); }
.cp-tt-faq-item summary:hover { background: rgba(255,255,255,.03); }
.cp-tt-faq-item p {
	padding: 0 20px 18px;
	color: var(--cp-text-muted);
	line-height: 1.6;
	margin: 0;
	font-size: .95rem;
}
.cp-tt-faq-item p a { color: var(--cp-primary); }

/* Final CTA */
.cp-tt-final-cta {
	text-align: center;
	margin-top: 50px;
	padding: 40px 30px;
	background: linear-gradient(135deg, var(--cp-primary), var(--cp-secondary));
	border-radius: 20px;
	color: #fff;
}
.cp-tt-final-cta h2 {
	color: #fff !important;
	margin: 0 0 8px;
	font-size: 1.6rem;
	font-weight: 800;
}
.cp-tt-final-cta p {
	color: rgba(255,255,255,.85);
	margin: 0 0 20px;
	font-size: 1.02rem;
}
.cp-tt-final-cta .cp-btn-primary {
	background: #fff !important;
	color: var(--cp-primary) !important;
	font-weight: 800;
}
.cp-tt-final-links { display: flex; gap: 10px; justify-content: center; flex-wrap: wrap; }

/* =========================================================
 * INTERIOR PAGES — same premium look as home
 * ========================================================= */

/* Archives + singles wrapper */
.cp-page-full {
	padding: 36px 0 60px;
}
.cp-page-full > .cp-content,
.cp-page-full > article.cp-content {
	background: var(--cp-surface) !important;
	border: 1px solid var(--cp-border) !important;
	border-radius: 18px;
	padding: 36px;
	box-shadow: 0 8px 32px rgba(0,0,0,.18);
}
@media (max-width: 720px) {
	.cp-page-full > .cp-content,
	.cp-page-full > article.cp-content { padding: 22px; }
}

/* Archive head premium (gradient, icon, big title) */
.cp-archive-head {
	text-align: center;
	margin-bottom: 36px;
	padding: 70px 40px 60px;
	background:
		radial-gradient(ellipse at top, rgba(224,128,32,.18), transparent 60%),
		linear-gradient(180deg, var(--cp-surface), var(--cp-bg));
	border: 1px solid var(--cp-border);
	border-radius: 20px;
	position: relative;
	overflow: hidden;
}
.cp-archive-head::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: linear-gradient(rgba(255,255,255,.02) 1px, transparent 1px);
	background-size: 100% 40px;
	opacity: .4;
	pointer-events: none;
}
.cp-archive-head h1 {
	font-size: clamp(2rem, 4.5vw, 3rem);
	color: var(--cp-text);
	margin: 0 0 18px;
	letter-spacing: 2px;
	line-height: 1.15;
	position: relative;
	text-shadow: 0 4px 20px rgba(0,0,0,.4);
}
.cp-archive-head p {
	color: var(--cp-text-muted);
	font-size: 1.05rem;
	max-width: 640px;
	margin: 0 auto;
	line-height: 1.7;
	position: relative;
	font-family: var(--cp-font-body), sans-serif;
}
.cp-archive-head .cp-btn { margin-top: 26px; position: relative; }
@media (max-width: 720px) {
	.cp-archive-head { padding: 50px 24px 40px; }
	.cp-archive-head h1 { letter-spacing: 1px; }
}

/* Single casino header — premium card */
.cp-casino-header {
	display: grid;
	grid-template-columns: 160px 1fr;
	gap: 28px;
	align-items: center;
	margin-bottom: 28px;
	padding: 28px;
	background: linear-gradient(135deg, rgba(230,57,70,.06), rgba(241,196,15,.04));
	border: 1px solid rgba(241,196,15,.18);
	border-radius: 18px;
}
@media (max-width: 720px) {
	.cp-casino-header { grid-template-columns: 1fr; text-align: center; padding: 20px; }
}
.cp-casino-logo-wrap {
	background: #fff;
	border-radius: 14px;
	padding: 16px;
	height: 110px;
	display: flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 6px 20px rgba(0,0,0,.25);
}
.cp-casino-logo-wrap img { max-width: 100%; max-height: 100%; object-fit: contain; }
.cp-casino-title {
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	font-weight: 900;
	color: var(--cp-text) !important;
	margin: 0 0 10px;
	letter-spacing: -.5px;
}
.cp-casino-rating-big {
	display: flex;
	align-items: baseline;
	gap: 8px;
	margin: 8px 0 18px;
}
.cp-casino-rating-big .cp-rating-num {
	font-size: 2.4rem;
	font-weight: 900;
	color: var(--cp-accent);
	letter-spacing: -1px;
	line-height: 1;
}
.cp-casino-rating-big .cp-rating-max { color: var(--cp-text-muted); font-size: 1.1rem; }

/* Meta grid */
.cp-casino-meta-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px;
	margin: 24px 0 32px;
}
.cp-meta-item {
	background: rgba(255,255,255,.03);
	padding: 16px;
	border-radius: 12px;
	border: 1px solid var(--cp-border);
	color: var(--cp-text);
	font-size: .95rem;
}
.cp-meta-item strong {
	color: var(--cp-text-muted);
	font-weight: 700;
	font-size: .72rem;
	text-transform: uppercase;
	letter-spacing: .8px;
	display: block;
	margin-bottom: 6px;
}

/* Single thread / reclamo / bigwin headers */
.cp-thread-header,
.cp-reclamo-header,
.cp-bigwin-header {
	margin-bottom: 28px;
	padding-bottom: 22px;
	border-bottom: 1px solid var(--cp-border);
}
.cp-thread-header h1,
.cp-reclamo-header h1,
.cp-bigwin-header h1 {
	margin: 8px 0 14px;
	color: var(--cp-text);
	font-size: clamp(1.5rem, 3vw, 2.1rem);
	font-weight: 800;
	letter-spacing: -.5px;
	line-height: 1.15;
}

.cp-thread-meta,
.cp-reclamo-meta,
.cp-bigwin-meta {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
	font-size: .9rem;
	color: var(--cp-text-muted);
}
.cp-thread-meta time,
.cp-reclamo-meta time,
.cp-bigwin-meta time { opacity: .75; }

.cp-thread-flags { margin-bottom: 10px; }
.cp-flag {
	display: inline-block;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 800;
	margin-right: 6px;
	letter-spacing: .5px;
	text-transform: uppercase;
}
.cp-flag-pin { background: rgba(241,196,15,.15); color: var(--cp-accent); }
.cp-flag-lock { background: rgba(218,54,51,.15); color: var(--cp-danger); }

.cp-thread-content,
.cp-reclamo-content,
.cp-bigwin-content {
	color: var(--cp-text);
	line-height: 1.75;
	font-size: 1.05rem;
}

.cp-bigwin-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 14px;
	margin: 24px 0;
}
.cp-bigwin-stat {
	background: linear-gradient(135deg, rgba(241,196,15,.06), rgba(255,255,255,.02));
	padding: 16px 18px;
	border-radius: 12px;
	border: 1px solid var(--cp-border);
}
.cp-bigwin-stat .cp-stat-label {
	display: block;
	font-size: .72rem;
	text-transform: uppercase;
	color: var(--cp-text-muted);
	letter-spacing: .8px;
	margin-bottom: 4px;
	font-weight: 700;
}
.cp-bigwin-stat strong {
	color: var(--cp-accent);
	font-size: 1.2rem;
	font-weight: 800;
}
.cp-bigwin-stat strong a { color: var(--cp-primary); }

/* Bottom CTA single casino mejorado */
.cp-casino-bottom-cta {
	margin-top: 40px;
	padding: 36px 30px;
	background: linear-gradient(135deg, var(--cp-primary) 0%, var(--cp-secondary) 100%);
	border-radius: 18px;
	text-align: center;
	color: #fff;
	box-shadow: 0 12px 40px rgba(230,57,70,.25);
}
.cp-casino-bottom-cta h3 {
	color: #fff !important;
	margin: 0 0 14px;
	font-size: 1.5rem;
	font-weight: 800;
}
.cp-bottom-cta-bonus {
	font-size: 1.15rem;
	color: #fff !important;
	margin: 0 0 20px;
	opacity: .98;
	font-weight: 600;
}
.cp-casino-bottom-cta .cp-btn {
	background: #fff !important;
	color: var(--cp-primary) !important;
	font-weight: 800;
	padding: 14px 36px !important;
}
.cp-casino-bottom-cta .cp-btn:hover {
	background: var(--cp-accent) !important;
	color: #000 !important;
	transform: translateY(-2px);
}
.cp-bottom-cta-note {
	display: block;
	margin-top: 18px;
	font-size: .82rem;
	opacity: .85;
	color: #fff !important;
}

/* Sections internas */
.cp-page-full .cp-section {
	margin-top: 40px;
	padding-top: 28px;
	border-top: 1px solid var(--cp-border);
}
.cp-page-full .cp-section h2 {
	font-size: 1.4rem;
	font-weight: 800;
	margin-bottom: 18px;
	color: var(--cp-text);
}

/* Pagination premium */
.cp-pagination {
	margin: 36px 0 0;
	text-align: center;
}
.cp-pagination .page-numbers {
	display: inline-block;
	padding: 10px 16px;
	margin: 0 4px;
	background: var(--cp-surface);
	color: var(--cp-text) !important;
	border-radius: 10px;
	border: 1px solid var(--cp-border);
	text-decoration: none !important;
	font-weight: 600;
	transition: all .15s;
}
.cp-pagination .page-numbers.current {
	background: var(--cp-primary);
	color: #fff !important;
	border-color: var(--cp-primary);
}
.cp-pagination .page-numbers:hover:not(.current) {
	border-color: var(--cp-primary);
	transform: translateY(-1px);
}

/* =========================================================
 * ARCHIVES: thread list, bigwin grid
 * ========================================================= */

/* Thread list */
.cp-thread-list {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 24px;
}
.cp-thread-item {
	display: grid;
	grid-template-columns: 50px 1fr auto;
	gap: 16px;
	align-items: center;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 12px;
	padding: 16px 20px;
	transition: border-color .15s, transform .15s;
}
.cp-thread-item:hover {
	border-color: var(--cp-primary);
	transform: translateX(2px);
}
.cp-thread-item-pinned {
	background: linear-gradient(135deg, var(--cp-surface), rgba(241,196,15,.04));
	border-color: rgba(241,196,15,.2);
}
.cp-thread-item-avatar { width: 44px; height: 44px; }
.cp-thread-item-avatar img { width: 100%; height: 100%; border-radius: 50%; object-fit: cover; }
.cp-thread-item-main { min-width: 0; }
.cp-thread-item-head {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 4px;
}
.cp-thread-item-cat {
	font-size: .72rem;
	font-weight: 700;
	color: var(--cp-primary) !important;
	background: rgba(230,57,70,.08);
	padding: 3px 8px;
	border-radius: 6px;
	text-decoration: none !important;
	border-bottom: 0 !important;
}
.cp-thread-item-title {
	margin: 4px 0;
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
}
.cp-thread-item-title a {
	color: var(--cp-text) !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
}
.cp-thread-item-title a:hover { color: var(--cp-primary) !important; }
.cp-thread-item-meta {
	font-size: .82rem;
	color: var(--cp-text-muted);
	display: flex;
	gap: 6px;
	align-items: center;
}
.cp-thread-item-meta strong { color: var(--cp-text); font-weight: 600; }
.cp-thread-item-replies {
	text-align: center;
	min-width: 70px;
	padding: 8px 12px;
	background: rgba(255,255,255,.04);
	border-radius: 10px;
	border: 1px solid var(--cp-border);
}
.cp-thread-item-replies strong {
	display: block;
	font-size: 1.4rem;
	font-weight: 800;
	color: var(--cp-accent);
	line-height: 1;
}
.cp-thread-item-replies small {
	font-size: .72rem;
	color: var(--cp-text-muted);
	letter-spacing: .3px;
	text-transform: lowercase;
}
@media (max-width: 640px) {
	.cp-thread-item { grid-template-columns: 40px 1fr; }
	.cp-thread-item-avatar { width: 40px; height: 40px; }
	.cp-thread-item-replies { display: none; }
}

/* Big Win grid (similar a carousel cards pero en grid) */
.cp-bigwin-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
	margin-top: 24px;
}
@media (max-width: 600px) {
	.cp-bigwin-grid { grid-template-columns: 1fr; }
}

/* Tiempo en reclamos compactos */
.cp-reclamo-compact-time {
	color: var(--cp-text-muted);
	font-size: .8rem;
	opacity: .7;
}

/* =========================================================
 * MI PERFIL — premium look
 * ========================================================= */
.cp-profile { padding: 36px 0 60px; }
.cp-profile-head {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 24px;
	align-items: center;
	padding: 28px 32px !important;
	background: linear-gradient(135deg, var(--cp-surface), rgba(241,196,15,.04)) !important;
	border: 1px solid var(--cp-border) !important;
	border-radius: 18px !important;
	margin-bottom: 24px;
}
@media (max-width: 640px) {
	.cp-profile-head { grid-template-columns: 1fr; text-align: center; padding: 24px !important; }
}
.cp-profile-avatar img {
	width: 96px;
	height: 96px;
	border-radius: 50%;
	border: 3px solid var(--cp-accent);
	padding: 3px;
	background: var(--cp-surface);
	object-fit: cover;
}
.cp-profile-info h1 {
	margin: 0 0 8px;
	font-size: 1.8rem;
	font-weight: 800;
	color: var(--cp-text);
	letter-spacing: -.5px;
}
.cp-profile-info p { margin: 4px 0; }
.cp-profile-stats {
	font-size: 1.05rem;
	font-weight: 600;
	color: var(--cp-accent);
}
.cp-profile-location {
	color: var(--cp-text-muted);
	font-size: .92rem;
}
.cp-profile-fav {
	color: var(--cp-text-muted);
	font-size: .92rem;
}
.cp-profile-fav a {
	color: var(--cp-primary);
	font-weight: 600;
}

/* Profile sections */
.cp-profile .cp-profile-actions,
.cp-profile .cp-profile-recent {
	margin-top: 24px;
	padding: 24px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
}
.cp-profile h2 {
	font-size: 1.3rem;
	font-weight: 800;
	margin: 0 0 16px;
	color: var(--cp-text);
}
.cp-profile-actions .cp-btn { margin-right: 8px; margin-bottom: 8px; }

/* Profile edit form premium */
.cp-profile-edit {
	padding: 28px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
	margin-top: 24px;
}
.cp-profile-edit h2 { margin-top: 0; }
.cp-form-fieldset {
	border: 1px solid var(--cp-border);
	border-radius: 10px;
	padding: 18px 20px;
	margin: 18px 0;
}
.cp-form-fieldset legend {
	color: var(--cp-text);
	font-weight: 700;
	padding: 0 8px;
	font-size: .95rem;
}
.cp-tiki-picker {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	margin-top: 8px;
}
.cp-tiki-option {
	cursor: pointer;
	border: 2px solid var(--cp-border);
	border-radius: 14px;
	padding: 6px;
	transition: border-color .15s, transform .15s;
}
.cp-tiki-option:hover { transform: scale(1.05); border-color: var(--cp-primary); }
.cp-tiki-option input { display: none; }
.cp-tiki-option input:checked + img { box-shadow: 0 0 0 3px var(--cp-accent); }
.cp-tiki-option img {
	width: 64px;
	height: 64px;
	border-radius: 10px;
	display: block;
	object-fit: cover;
}

/* Leaderboard premium */
.cp-leaderboard { padding: 36px 0 60px; }
.cp-leaderboard table {
	background: var(--cp-surface);
	border-radius: 14px;
	overflow: hidden;
	border: 1px solid var(--cp-border);
}
.cp-leaderboard th {
	background: rgba(255,255,255,.04);
	text-align: left;
	padding: 14px 16px;
	font-size: .8rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .8px;
	color: var(--cp-text-muted);
	border-bottom: 2px solid var(--cp-border);
}
.cp-leaderboard td {
	padding: 14px 16px;
	border-bottom: 1px solid var(--cp-border);
	color: var(--cp-text);
}
.cp-leaderboard tr:hover td { background: rgba(255,255,255,.02); }
.cp-leaderboard tr:nth-child(1) td:first-child { color: var(--cp-accent); font-weight: 900; font-size: 1.2rem; }
.cp-leaderboard tr:nth-child(2) td:first-child { color: #d4d4d8; font-weight: 800; font-size: 1.1rem; }
.cp-leaderboard tr:nth-child(3) td:first-child { color: #b78328; font-weight: 800; font-size: 1.05rem; }

/* =========================================================
 * TRIBUBET — DECORACIÓN TIKI / SELVA (FUERTE)
 * ========================================================= */

/* Logo image — Tribubet, prominente */
.cp-logo-img {
	max-height: 110px;
	height: auto;
	width: auto;
	display: block;
	filter: drop-shadow(0 2px 10px rgba(0,0,0,.5));
}
.cp-site-header .cp-logo,
.cp-site-header .cp-logo-wrap,
.cp-site-header .cp-logo a {
	display: inline-flex;
	align-items: center;
}
.cp-site-header .cp-logo-img { max-height: 110px; }
.cp-site-header .cp-header-inner { padding: 18px 0 !important; }

/* Footer logo más sutil */
.cp-footer-logo .cp-logo-img,
.cp-footer .cp-logo-img { max-height: 56px; }

/* Mobile: ajustar */
@media (max-width: 720px) {
	.cp-site-header .cp-logo-img { max-height: 70px; }
}

/* Heading font ajuste — Bungee es bloqueada, requiere ajustes para no abrumar */
body { font-family: var(--cp-font-body, 'Nunito'), sans-serif; }
h1, h2, h3, h4, h5, h6,
.cp-affhero-title,
.cp-tt-hero-title,
.cp-archive-head h1 {
	font-family: var(--cp-font-heading, 'Bungee'), 'Bungee', cursive;
	letter-spacing: 1px;
	text-transform: uppercase;
	line-height: 1.15;
	word-spacing: 4px;
}
h2, h3 { letter-spacing: 1.5px; line-height: 1.2; }
/* Bungee solo tiene 400. Forzar para que no aparezca con stroke gigante */
.cp-front-affiliate h1, .cp-front-affiliate h2,
.cp-front-affiliate h3, .cp-page-full h1, .cp-page-full h2,
.cp-archive-head h1, .cp-tt-hero-title, .cp-affhero-title {
	font-weight: 400;
}
/* Pero los CTA y body strong sí gruesos con la body font */
.cp-btn, strong, b { font-weight: 700; }
/* Body con line-height más generoso */
body, p, li { line-height: 1.65; }

/* === HERO con tiki gigante de fondo === */
.cp-affhero {
	position: relative;
	background:
		radial-gradient(ellipse at 80% 20%, rgba(224,128,32,.18), transparent 55%),
		radial-gradient(ellipse at 20% 80%, rgba(90,138,58,.12), transparent 50%),
		linear-gradient(180deg, var(--cp-bg) 0%, var(--cp-surface) 100%);
	overflow: hidden;
}
.cp-affhero::before {
	content: '';
	position: absolute;
	right: -100px;
	top: 50%;
	transform: translateY(-50%);
	width: 500px;
	height: 500px;
	background: url('../images/tribubet/tiki-mask.png') center/contain no-repeat;
	opacity: 0.08;
	pointer-events: none;
	z-index: 0;
	filter: drop-shadow(0 0 30px rgba(245,185,66,.4));
}
.cp-affhero::after {
	content: '';
	position: absolute;
	left: -50px;
	bottom: -80px;
	width: 280px;
	height: 280px;
	background: url('../images/tribubet/leaf.svg') center/contain no-repeat;
	color: var(--cp-secondary);
	opacity: 0.18;
	transform: rotate(-25deg);
	pointer-events: none;
	z-index: 0;
}
.cp-affhero-grid { position: relative; z-index: 1; }

/* Tribal divider entre secciones */
.cp-front-affiliate > .cp-section,
.cp-front-affiliate > .cp-cols-2-asym {
	position: relative;
	margin-top: 64px;
	padding-top: 28px;
}
.cp-front-affiliate > .cp-section::before,
.cp-front-affiliate > .cp-cols-2-asym::before {
	content: '';
	display: block;
	position: absolute;
	top: -8px;
	left: 50%;
	transform: translateX(-50%);
	width: min(400px, 70%);
	height: 24px;
	background: url('../images/tribubet/divider.svg') center/contain no-repeat;
	color: var(--cp-accent);
	opacity: 0.5;
}
.cp-front-affiliate > .cp-trust-strip::before { display: none; } /* el trust strip no necesita */

/* Section heads con icono tiki sutil */
.cp-section-head h2 {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

/* Cards con esquina decorativa de hoja */
.cp-bonus-card,
.cp-casino-row,
.cp-carousel-card,
.cp-tt-action,
.cp-tt-explain-item {
	position: relative;
}
.cp-casino-row::before,
.cp-tt-action::before {
	content: '';
	position: absolute;
	top: -2px;
	right: -2px;
	width: 36px;
	height: 36px;
	background: url('../images/tribubet/leaf.svg') center/contain no-repeat;
	color: var(--cp-accent);
	opacity: 0.12;
	transform: rotate(35deg);
	pointer-events: none;
	border-radius: 0 16px 0 0;
}
.cp-casino-row > * { position: relative; z-index: 1; }
.cp-tt-action > * { position: relative; z-index: 1; }

/* Patrón tribal sutil en footer */
.cp-footer {
	position: relative;
	background:
		linear-gradient(180deg, transparent, rgba(0,0,0,.4)),
		linear-gradient(180deg, var(--cp-surface), var(--cp-bg));
	border-top: 1px solid var(--cp-border);
}
.cp-footer::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 24px;
	background: url('../images/tribubet/divider.svg') center/contain repeat-x;
	color: var(--cp-accent);
	opacity: 0.4;
}

/* Hero sub: el logo Tribubet ya tiene presencia, así que el título puede ser menos dominante */
.cp-affhero-eyebrow {
	background: transparent;
	border: 0;
	color: var(--cp-accent);
	font-family: var(--cp-font-heading, 'Bungee'), 'Bungee', cursive;
	font-weight: 400;
	font-size: .85rem;
}

/* Featured casino card con borde dorado más ornamental */
.cp-affhero-feature-card {
	background:
		radial-gradient(circle at 50% 0%, rgba(245,185,66,.15), transparent 60%),
		linear-gradient(135deg, rgba(224,128,32,.08), rgba(90,138,58,.05));
	border: 2px solid;
	border-image: linear-gradient(135deg, var(--cp-accent), var(--cp-primary)) 1;
	border-radius: 0;  /* bordes rectos para feel "tablero de madera" */
}
.cp-affhero-feature-card {
	border-radius: 18px;
	border-image: none;
	border-color: rgba(245,185,66,.4);
}

/* Trust strip con look madera */
.cp-trust-strip {
	background:
		linear-gradient(135deg, rgba(224,128,32,.06), rgba(90,138,58,.04)),
		var(--cp-surface);
	border: 1px solid rgba(245,185,66,.2);
	position: relative;
}
.cp-trust-strip::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: url('../images/tribubet/pattern.svg') center repeat;
	color: var(--cp-accent);
	opacity: 0.04;
	pointer-events: none;
	border-radius: 16px;
}
.cp-trust-strip > * { position: relative; z-index: 1; }

/* Bonus cards: sponsored ribbon más tribal */
.cp-bonus-card-flag {
	background: linear-gradient(90deg, var(--cp-accent), var(--cp-primary));
	color: #fff;
	box-shadow: 0 2px 8px rgba(0,0,0,.4);
}

/* Carousel cards (big wins) — toque selvático */
.cp-carousel-card {
	background:
		radial-gradient(circle at 100% 0%, rgba(245,185,66,.06), transparent 50%),
		var(--cp-surface);
}
.cp-carousel-card::before {
	content: '';
	position: absolute;
	bottom: 8px;
	right: 8px;
	width: 32px;
	height: 32px;
	background: url('../images/tribubet/leaf.svg') center/contain no-repeat;
	color: var(--cp-secondary);
	opacity: 0.15;
	transform: rotate(15deg);
	pointer-events: none;
}

/* Reclamos compactos: borde lateral con color de status */
.cp-reclamo-compact {
	border-left: 4px solid transparent !important;
}
.cp-reclamo-compact.cp-status-pending       { border-left-color: var(--cp-accent) !important; }
.cp-reclamo-compact.cp-status-investigating { border-left-color: #58a6ff !important; }
.cp-reclamo-compact.cp-status-resolved      { border-left-color: #2ea043 !important; }
.cp-reclamo-compact.cp-status-rejected      { border-left-color: var(--cp-danger) !important; }

/* Page interior heads — fondo con mascara tiki sutil */
.cp-archive-head,
.cp-tt-hero {
	position: relative;
	overflow: hidden;
}
.cp-archive-head::after,
.cp-tt-hero::after {
	content: '';
	position: absolute;
	right: -60px;
	top: -40px;
	width: 220px;
	height: 220px;
	background: url('../images/tribubet/tiki-mask-sm.png') center/contain no-repeat;
	opacity: 0.08;
	pointer-events: none;
	transform: rotate(-8deg);
}
.cp-archive-head > *,
.cp-tt-hero > * { position: relative; z-index: 1; }

/* Tikitokens action icons + level icons con borde dorado */
.cp-tt-action-icon,
.cp-tt-level-icon {
	background: linear-gradient(135deg, rgba(245,185,66,.15), rgba(224,128,32,.08));
	border: 1px solid rgba(245,185,66,.25);
	border-radius: 50%;
	width: 50px;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* Bottom CTA single casino — gradiente Tribubet (no rojo plano) */
.cp-casino-bottom-cta {
	background:
		radial-gradient(ellipse at 50% 0%, rgba(245,185,66,.3), transparent 60%),
		linear-gradient(135deg, var(--cp-primary) 0%, var(--cp-secondary) 100%);
	box-shadow: 0 12px 40px rgba(224,128,32,.3);
}

/* Final CTA Tikitokens */
.cp-tt-final-cta {
	background:
		radial-gradient(circle at 30% 30%, rgba(245,185,66,.25), transparent 60%),
		linear-gradient(135deg, var(--cp-primary), var(--cp-secondary));
	position: relative;
	overflow: hidden;
}
.cp-tt-final-cta::before {
	content: '';
	position: absolute;
	right: -30px;
	bottom: -30px;
	width: 200px;
	height: 200px;
	background: url('../images/tribubet/tiki-mask-sm.png') center/contain no-repeat;
	opacity: 0.18;
	pointer-events: none;
}
.cp-tt-final-cta > * { position: relative; z-index: 1; }

/* Categorías populares: quick cats con vibe tribal */
.cp-quick-cat {
	background:
		linear-gradient(135deg, rgba(245,185,66,.04), transparent 70%),
		var(--cp-surface);
}
.cp-quick-cat:hover {
	background:
		linear-gradient(135deg, rgba(224,128,32,.1), transparent 70%),
		var(--cp-surface);
	border-color: var(--cp-accent);
}

/* Body background con textura sutil de pattern tribal */
body {
	background:
		linear-gradient(180deg, var(--cp-bg) 0%, var(--cp-bg) 100%);
	position: relative;
}

/* Selección de texto */
::selection {
	background: var(--cp-accent);
	color: #1a1410;
}

/* Scrollbar custom */
::-webkit-scrollbar { width: 10px; height: 10px; }
::-webkit-scrollbar-track { background: var(--cp-bg); }
::-webkit-scrollbar-thumb {
	background: linear-gradient(180deg, var(--cp-primary), var(--cp-secondary));
	border-radius: 5px;
	border: 2px solid var(--cp-bg);
}
::-webkit-scrollbar-thumb:hover { background: var(--cp-accent); }

/* =========================================================
 * FILTROS Y BÚSQUEDA (foro + reclamos)
 * ========================================================= */
.cp-filter-bar {
	display: flex;
	gap: 14px;
	align-items: center;
	flex-wrap: wrap;
	margin: 24px 0 18px;
	padding: 16px 18px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
}
.cp-filter-search {
	position: relative;
	flex: 1;
	min-width: 240px;
	display: flex;
	align-items: center;
}
.cp-filter-search-icon {
	position: absolute;
	left: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1rem;
	pointer-events: none;
	opacity: .7;
}
.cp-filter-search input[type="search"] {
	width: 100%;
	padding: 11px 14px 11px 40px;
	background: rgba(0,0,0,.3);
	border: 1px solid var(--cp-border);
	border-radius: 10px;
	color: var(--cp-text);
	font-family: inherit;
	font-size: .95rem;
	outline: none;
	transition: border-color .15s, background-color .15s;
}
.cp-filter-search input[type="search"]:focus {
	border-color: var(--cp-accent);
	background: rgba(0,0,0,.45);
}
.cp-filter-search input[type="search"]::placeholder {
	color: var(--cp-text-muted);
	opacity: .7;
}

.cp-filter-controls {
	display: flex;
	gap: 12px;
	align-items: center;
	flex-wrap: wrap;
}
.cp-filter-field {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: .85rem;
	color: var(--cp-text-muted);
}
.cp-filter-field span {
	white-space: nowrap;
	font-weight: 600;
}
.cp-filter-field select {
	padding: 8px 12px;
	background: rgba(0,0,0,.3);
	border: 1px solid var(--cp-border);
	border-radius: 8px;
	color: var(--cp-text);
	font-family: inherit;
	font-size: .9rem;
	cursor: pointer;
	outline: none;
	transition: border-color .15s;
}
.cp-filter-field select:hover { border-color: var(--cp-accent); }
.cp-filter-field select:focus { border-color: var(--cp-accent); }

.cp-filter-clear {
	font-size: .82rem;
	color: var(--cp-text-muted) !important;
	text-decoration: none !important;
	padding: 8px 10px;
	border-radius: 6px;
	transition: color .15s, background-color .15s;
}
.cp-filter-clear:hover {
	color: var(--cp-danger) !important;
	background: rgba(218,54,51,.08);
}

@media (max-width: 720px) {
	.cp-filter-bar { padding: 14px; }
	.cp-filter-controls { width: 100%; justify-content: space-between; }
	.cp-filter-field { flex: 1 1 calc(50% - 6px); }
	.cp-filter-field select { flex: 1; min-width: 0; }
}

.cp-filter-summary {
	color: var(--cp-text-muted);
	font-size: .9rem;
	margin: 0 0 16px;
	padding: 10px 14px;
	background: rgba(245,185,66,.06);
	border-left: 3px solid var(--cp-accent);
	border-radius: 6px;
}
.cp-filter-summary strong { color: var(--cp-text); }

/* =========================================================
 * CHIPS DE STATUS (reclamos)
 * ========================================================= */
.cp-status-chips {
	display: flex;
	gap: 10px;
	flex-wrap: wrap;
	margin: 24px 0 18px;
}
.cp-status-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 999px;
	color: var(--cp-text) !important;
	font-weight: 600;
	font-size: .92rem;
	text-decoration: none !important;
	border-bottom: 0 !important;
	transition: all .15s;
}
.cp-status-chip:hover {
	transform: translateY(-1px);
	border-color: var(--cp-accent);
	background: rgba(245,185,66,.06);
}
.cp-status-chip-active {
	background: var(--cp-accent);
	color: #1a1410 !important;
	border-color: var(--cp-accent);
	font-weight: 800;
	box-shadow: 0 4px 12px rgba(245,185,66,.3);
}
.cp-status-chip-active:hover {
	background: var(--cp-accent);
	color: #1a1410 !important;
	transform: translateY(-1px);
}
.cp-status-chip-icon { font-size: 1rem; line-height: 1; }
.cp-status-chip-count {
	display: inline-block;
	min-width: 22px;
	padding: 2px 8px;
	background: rgba(0,0,0,.3);
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 800;
	color: var(--cp-text);
}
.cp-status-chip-active .cp-status-chip-count {
	background: rgba(0,0,0,.25);
	color: #1a1410;
}

/* Variantes de color por status */
.cp-status-chip-pending:not(.cp-status-chip-active)       { border-color: rgba(245,185,66,.3); }
.cp-status-chip-investigating:not(.cp-status-chip-active) { border-color: rgba(56,139,253,.3); }
.cp-status-chip-resolved:not(.cp-status-chip-active)      { border-color: rgba(46,160,67,.3); }
.cp-status-chip-rejected:not(.cp-status-chip-active)      { border-color: rgba(218,54,51,.3); }

/* =========================================================
 * CATEGORÍAS GRID (foro)
 * ========================================================= */
.cp-cats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 12px;
	margin: 24px 0;
}
.cp-cat-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 12px;
	color: var(--cp-text) !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
	transition: transform .15s, border-color .15s, background-color .15s;
}
.cp-cat-card:hover {
	transform: translateY(-2px);
	border-color: var(--cp-accent);
	background: linear-gradient(135deg, rgba(245,185,66,.06), transparent);
}
.cp-cat-card-active {
	border-color: var(--cp-accent);
	background: linear-gradient(135deg, rgba(245,185,66,.1), rgba(224,128,32,.04));
	box-shadow: 0 0 0 1px rgba(245,185,66,.3);
}
.cp-cat-card-icon {
	font-size: 1.8rem;
	line-height: 1;
	flex-shrink: 0;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(245,185,66,.08);
	border-radius: 10px;
}
.cp-cat-card-info {
	display: flex;
	flex-direction: column;
	min-width: 0;
}
.cp-cat-card-info strong {
	color: var(--cp-text);
	font-weight: 700;
	font-size: 1rem;
	margin-bottom: 2px;
	line-height: 1.2;
}
.cp-cat-card-info small {
	color: var(--cp-text-muted);
	font-size: .82rem;
	font-weight: 500;
}

/* Section title small (entre filtros y lista) */
.cp-section-title-small {
	font-size: 1.1rem !important;
	color: var(--cp-text-muted);
	margin: 24px 0 14px !important;
	padding-bottom: 10px;
	border-bottom: 1px solid var(--cp-border);
	letter-spacing: 1px;
}

/* =========================================================
 * FIXES de tipografía Bungee en items de listas
 * (los títulos de hilos/reclamos deben ser legibles, no estilo display)
 * ========================================================= */
.cp-thread-item-title,
.cp-thread-item-title a,
.cp-reclamo-compact-title,
.cp-casino-row-title,
.cp-casino-row-title a,
.cp-bonus-card-bonus,
.cp-carousel-card-title,
.cp-tt-action-info strong,
.cp-tt-explain-item h3,
.cp-cat-card-info strong,
.cp-tt-faq-item summary {
	font-family: var(--cp-font-body, 'Nunito'), sans-serif !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-weight: 700 !important;
	line-height: 1.35 !important;
}

/* Empty block titles también legibles */
.cp-empty-block h3 {
	font-family: var(--cp-font-body, 'Nunito'), sans-serif !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-weight: 800 !important;
}

/* Section title small — legible */
.cp-section-title-small {
	font-family: var(--cp-font-body, 'Nunito'), sans-serif !important;
	text-transform: uppercase !important;
	letter-spacing: 1.5px !important;
	font-weight: 800 !important;
	font-size: .9rem !important;
}

/* Featured casino title en hero — más respiración */
.cp-affhero-feature-title {
	font-family: var(--cp-font-heading, 'Bungee'), 'Bungee', cursive;
	letter-spacing: 1px;
	line-height: 1.2;
}

/* Profile head title legible */
.cp-profile-info h1 {
	font-family: var(--cp-font-heading, 'Bungee'), 'Bungee', cursive;
	letter-spacing: 1px;
	line-height: 1.15;
}

/* TT hero accent (subtítulo del título Tikitokens) */
.cp-tt-hero-accent {
	font-family: var(--cp-font-body, 'Nunito'), sans-serif !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	font-weight: 600 !important;
}

/* Casino bottom CTA h3 */
.cp-casino-bottom-cta h3,
.cp-tt-final-cta h2 {
	letter-spacing: 1.5px;
	line-height: 1.2;
}

/* Hero stats numbers — la font body para que no se vea bloqueada */
.cp-affhero-stat strong {
	font-family: var(--cp-font-body, 'Nunito'), sans-serif !important;
	letter-spacing: -1px !important;
}

/* Bonus card name */
.cp-bonus-card-name {
	font-family: var(--cp-font-body, 'Nunito'), sans-serif !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

/* Status badges */
.cp-status-badge,
.cp-cell-sponsored,
.cp-bonus-card-flag {
	font-family: var(--cp-font-body, 'Nunito'), sans-serif !important;
	letter-spacing: .5px !important;
	font-weight: 800 !important;
}

/* =========================================================
 * FIXES SPACING — separación clara entre secciones
 * ========================================================= */

/* Spacing dentro de pages premium */
.cp-page-full .cp-content > * + *,
.cp-page-full > .cp-content > * + * {
	margin-top: 36px;
}
.cp-page-full .cp-content > .cp-archive-head + *,
.cp-page-full > .cp-content > .cp-archive-head + * {
	margin-top: 32px;
}
.cp-page-full .cp-content > .cp-cats-grid + .cp-filter-bar,
.cp-page-full > .cp-content > .cp-cats-grid + .cp-filter-bar {
	margin-top: 28px;
}

/* Section title small — para "Hilos recientes", "Resultados", etc */
.cp-section-title-small {
	font-size: 1.3rem !important;
	font-weight: 400;
	color: var(--cp-text);
	margin: 40px 0 18px !important;
	padding-top: 24px;
	border-top: 1px solid var(--cp-border);
	display: flex;
	align-items: center;
	gap: 10px;
	letter-spacing: 0;
	text-transform: uppercase;
}
.cp-section-title-small::before {
	content: '';
	display: inline-block;
	width: 4px;
	height: 22px;
	background: linear-gradient(180deg, var(--cp-primary), var(--cp-accent));
	border-radius: 2px;
}

/* Cats grid — categorías de foro */
.cp-cats-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 14px;
}
.cp-cat-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 20px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
	color: var(--cp-text) !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
	transition: transform .15s, border-color .15s, background-color .15s;
}
.cp-cat-card:hover {
	transform: translateY(-2px);
	border-color: var(--cp-accent);
	background: linear-gradient(135deg, rgba(245,185,66,.06), var(--cp-surface));
}
.cp-cat-card-active {
	border-color: var(--cp-accent) !important;
	background: linear-gradient(135deg, rgba(245,185,66,.08), var(--cp-surface)) !important;
	box-shadow: 0 0 0 1px rgba(245,185,66,.2);
}
.cp-cat-card-icon {
	font-size: 1.8rem;
	line-height: 1;
	flex-shrink: 0;
	width: 50px;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(245,185,66,.15), rgba(224,128,32,.08));
	border: 1px solid rgba(245,185,66,.25);
	border-radius: 50%;
}
.cp-cat-card-info {
	display: flex;
	flex-direction: column;
	gap: 4px;
	min-width: 0;
}
.cp-cat-card-info strong {
	color: var(--cp-text);
	font-weight: 700;
	font-size: 1rem;
	line-height: 1.2;
}
.cp-cat-card-info small {
	color: var(--cp-text-muted);
	font-size: .82rem;
}

/* Filter bar — más visible, mejor borde */
.cp-filter-bar {
	background: linear-gradient(135deg, var(--cp-surface), rgba(245,185,66,.03)) !important;
	border-color: rgba(245,185,66,.15) !important;
	box-shadow: 0 4px 16px rgba(0,0,0,.15);
}

/* Filter summary box */
.cp-filter-summary {
	background: rgba(245,185,66,.06);
	border: 1px solid rgba(245,185,66,.2);
	border-radius: 10px;
	padding: 12px 16px !important;
	margin: 0 0 16px !important;
	font-size: .92rem !important;
}
.cp-filter-summary strong { color: var(--cp-accent); font-weight: 700; }

/* Sort buttons (alternativa a select) — chips */
.cp-filter-chips {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin: 0 0 16px;
}
.cp-filter-chip {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 999px;
	color: var(--cp-text-muted) !important;
	font-size: .85rem;
	font-weight: 600;
	text-decoration: none !important;
	border-bottom: 0 !important;
	transition: all .15s;
}
.cp-filter-chip:hover {
	border-color: var(--cp-accent);
	color: var(--cp-text) !important;
}
.cp-filter-chip-active {
	background: linear-gradient(135deg, var(--cp-primary), var(--cp-secondary)) !important;
	border-color: transparent !important;
	color: #fff !important;
	box-shadow: 0 2px 8px rgba(224,128,32,.3);
}
.cp-filter-chip-count {
	background: rgba(255,255,255,.15);
	color: inherit;
	padding: 1px 8px;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 700;
}
.cp-filter-chip-active .cp-filter-chip-count {
	background: rgba(0,0,0,.25);
}

/* Spacing claros en thread / reclamo lists */
.cp-thread-list,
.cp-reclamos-compact {
	margin-top: 16px !important;
	margin-bottom: 16px;
}

/* Cuando el filter-bar está al inicio, separar de la siguiente sección */
.cp-filter-bar + .cp-filter-summary,
.cp-filter-bar + .cp-section-title-small,
.cp-filter-bar + h2 {
	margin-top: 28px !important;
}

/* Archives separación entre header y resto */
.cp-archive-head + .cp-cats-grid,
.cp-archive-head + .cp-filter-bar,
.cp-archive-head + .cp-thread-list,
.cp-archive-head + .cp-reclamos-compact,
.cp-archive-head + .cp-casino-list,
.cp-archive-head + .cp-bigwin-grid {
	margin-top: 32px;
}

/* Pagination separada */
.cp-pagination {
	margin-top: 40px !important;
}

/* =========================================================
 * MEJORAS POST-FEEDBACK
 * ========================================================= */

/* === Botón "Visitar casino" — mayúsculas + centrado === */
.cp-btn,
.cp-casino-row-cta-btn,
.cp-affhero-feature-cta,
.cp-bonus-card-cta,
a.cp-btn-primary,
button.cp-btn-primary {
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	text-align: center !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-weight: 700 !important;
}
.cp-casino-row-cta-btn,
.cp-affhero-feature-cta,
.cp-bonus-card-cta {
	width: 100%;
}

/* Single casino — botón visitar grande centrado */
.cp-casino-cta-main,
.cp-casino-bottom-cta .cp-btn {
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	font-size: 1rem !important;
}

/* === Sponsored badge ya NO superpuesto (cambiamos posicionamiento) === */
.cp-bonus-card {
	padding-top: 50px !important;  /* dejar espacio para el flag */
}
.cp-bonus-card-flag {
	position: absolute;
	top: 12px;
	left: 12px;
	right: 12px;  /* full width pero como pill */
	width: auto;
	background: linear-gradient(90deg, var(--cp-accent), var(--cp-primary)) !important;
	color: #fff !important;
	font-size: .68rem !important;
	font-weight: 800;
	letter-spacing: 1.5px;
	padding: 5px 0 !important;
	text-align: center;
	border-radius: 6px;
	z-index: 2;
	box-shadow: 0 2px 8px rgba(0,0,0,.35);
}
/* La info del casino debajo del flag, no se solapa */
.cp-bonus-card-name,
.cp-bonus-card-bonus,
.cp-bonus-card-logo {
	position: relative;
	z-index: 1;
}

/* === MENÚ EN MAYÚSCULAS + FONT TIKI === */
.cp-main-nav a,
.cp-header-nav a,
.cp-site-header nav a,
.cp-menu a {
	text-transform: uppercase !important;
	font-family: var(--cp-font-heading, 'Bungee'), 'Bungee', cursive !important;
	font-weight: 400 !important;
	letter-spacing: 1px !important;
	font-size: .95rem !important;
}
/* Botones del header (Ingresar/Registro) también en mayúsculas */
.cp-site-header .cp-btn,
.cp-header-cta,
.cp-site-header a.cp-btn {
	text-transform: uppercase !important;
	letter-spacing: 1.2px !important;
	font-family: var(--cp-font-heading, 'Bungee'), 'Bungee', cursive !important;
	font-weight: 400 !important;
}

/* === ELEMENTOS TIKI MÁS VISIBLES === */
/* Hero tiki — opacity 0.08 → 0.18 */
.cp-affhero::before {
	opacity: 0.18 !important;
	width: 600px !important;
	height: 600px !important;
}
.cp-affhero::after {
	opacity: 0.32 !important;
	width: 320px !important;
	height: 320px !important;
}

/* Archive head tiki — 0.08 → 0.20 */
.cp-archive-head::after,
.cp-tt-hero::after {
	opacity: 0.20 !important;
	width: 280px !important;
	height: 280px !important;
}

/* Cards corner leaf — 0.12 → 0.22 */
.cp-casino-row::before,
.cp-tt-action::before {
	opacity: 0.22 !important;
	width: 50px !important;
	height: 50px !important;
}

/* Carousel cards leaf — 0.15 → 0.28 */
.cp-carousel-card::before {
	opacity: 0.28 !important;
	width: 44px !important;
	height: 44px !important;
}

/* Trust strip pattern — 0.04 → 0.10 */
.cp-trust-strip::before { opacity: 0.10 !important; }

/* Tribal divider entre secciones — 0.5 → 0.75 */
.cp-front-affiliate > .cp-section::before,
.cp-front-affiliate > .cp-cols-2-asym::before {
	opacity: 0.75 !important;
}

/* Footer divider — 0.4 → 0.7 */
.cp-footer::before {
	opacity: 0.7 !important;
}

/* === REPLANTEAR "Últimos reclamos" + "Explora por categoría" === */
/* Ahora ambos deben ser cards visualmente parejas, no asimétricas mal */
.cp-cols-2-asym {
	grid-template-columns: 1.3fr 1fr !important;
	gap: 28px !important;
}
.cp-section-reclamos-compact,
.cp-section-quick-stats {
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 18px;
	padding: 28px;
	position: relative;
}
.cp-section-reclamos-compact::before,
.cp-section-quick-stats::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--cp-primary), var(--cp-accent));
	border-radius: 18px 18px 0 0;
}
.cp-section-reclamos-compact .cp-section-head,
.cp-section-quick-stats .cp-section-head {
	margin-bottom: 22px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--cp-border);
}
/* Reclamos lista dentro del card — sin doble border */
.cp-section-reclamos-compact .cp-reclamos-compact {
	border: 0 !important;
	background: transparent !important;
}
.cp-section-reclamos-compact .cp-reclamo-compact {
	background: rgba(0,0,0,.2);
	border-radius: 10px;
	margin-bottom: 8px;
	border: 1px solid var(--cp-border) !important;
}
.cp-section-reclamos-compact .cp-reclamo-compact:last-child { margin-bottom: 0; }

/* Quick cats grid 2x3 más limpio */
.cp-section-quick-stats .cp-quick-cats {
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
}

/* === BOTONES DE VOTACIÓN: ESTRELLAS === */
.cp-stars-rating {
	display: inline-flex;
	gap: 4px;
	align-items: center;
}
.cp-stars-rating .cp-star {
	display: inline-block;
	width: 28px;
	height: 28px;
	cursor: pointer;
	background: none;
	border: none;
	padding: 0;
	transition: transform .12s;
	position: relative;
}
.cp-stars-rating .cp-star::before {
	content: '★';
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.6rem;
	color: rgba(255,255,255,.15);
	line-height: 1;
}
.cp-stars-rating .cp-star.is-filled::before,
.cp-stars-rating:not(.cp-stars-readonly) .cp-star:hover::before,
.cp-stars-rating:not(.cp-stars-readonly) .cp-star:hover ~ .cp-star::before {
	color: var(--cp-accent);
	text-shadow: 0 2px 6px rgba(245,185,66,.3);
}
.cp-stars-rating:not(.cp-stars-readonly) .cp-star:hover {
	transform: scale(1.15);
}
.cp-stars-rating .cp-star:hover ~ .cp-star::before { color: rgba(255,255,255,.15); }

.cp-stars-summary {
	display: flex;
	align-items: center;
	gap: 14px;
	flex-wrap: wrap;
}
.cp-stars-num {
	font-size: 1.8rem;
	font-weight: 800;
	color: var(--cp-accent);
	letter-spacing: -.5px;
}
.cp-stars-num small {
	color: var(--cp-text-muted);
	font-size: .9rem;
	font-weight: 500;
}
.cp-stars-count {
	color: var(--cp-text-muted);
	font-size: .92rem;
}

/* === BOTONES DE VOTACIÓN RECLAMOS — VISIBLES === */
.cp-reclamo-votes {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(0,0,0,.3);
	border: 1px solid var(--cp-border);
	border-radius: 999px;
	padding: 4px;
}
.cp-reclamo-votes .cp-vote {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	background: transparent;
	border: 0;
	border-radius: 999px;
	color: var(--cp-text);
	font-weight: 700;
	font-size: .9rem;
	cursor: pointer;
	transition: all .15s;
	font-family: inherit;
}
.cp-reclamo-votes .cp-vote:hover:not(:disabled) {
	background: rgba(245,185,66,.12);
	color: var(--cp-accent);
	transform: translateY(-1px);
}
.cp-reclamo-votes .cp-vote-up.is-active {
	background: rgba(46,160,67,.18);
	color: #2ea043;
}
.cp-reclamo-votes .cp-vote-down.is-active {
	background: rgba(218,54,51,.18);
	color: var(--cp-danger);
}
.cp-reclamo-votes .cp-vote:disabled {
	opacity: .5;
	cursor: not-allowed;
}
.cp-reclamo-votes .cp-vote-score {
	padding: 0 14px;
	font-weight: 800;
	font-size: 1.1rem;
	color: var(--cp-text);
	border-left: 1px solid var(--cp-border);
	border-right: 1px solid var(--cp-border);
}
.cp-reclamo-votes .cp-vote-count {
	font-weight: 700;
}

/* Half star */
.cp-stars-rating .cp-star.is-half::before {
	background: linear-gradient(90deg, var(--cp-accent) 0%, var(--cp-accent) 50%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.15) 100%);
	-webkit-background-clip: text;
	background-clip: text;
	color: transparent;
	-webkit-text-fill-color: transparent;
}
.cp-stars-rating-lg .cp-star { width: 36px; height: 36px; }
.cp-stars-rating-lg .cp-star::before { font-size: 2.2rem; }
.cp-stars-rating-sm .cp-star { width: 18px; height: 18px; }
.cp-stars-rating-sm .cp-star::before { font-size: 1rem; }

/* Star input — el label completo es clickable */
.cp-star-input { cursor: pointer; }

/* =========================================================
 * SINGLE RECLAMO REDISEÑADO
 * ========================================================= */
.cp-single-reclamo .cp-content {
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 18px;
	padding: 40px;
}
@media (max-width: 720px) {
	.cp-single-reclamo .cp-content { padding: 24px; }
}

.cp-reclamo-back {
	margin-bottom: 18px;
}
.cp-reclamo-back a {
	color: var(--cp-text-muted) !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
	font-size: .9rem;
}
.cp-reclamo-back a:hover { color: var(--cp-accent) !important; }

.cp-reclamo-status-banner {
	margin-bottom: 14px;
}
.cp-reclamo-status-banner .cp-status-badge {
	font-size: .85rem !important;
	padding: 6px 14px !important;
}

.cp-reclamo-header-v2 h1 {
	font-size: clamp(1.6rem, 3.5vw, 2.4rem);
	color: var(--cp-text);
	margin: 0 0 24px;
	line-height: 1.15;
}

.cp-reclamo-key-stats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
	gap: 14px;
	margin-bottom: 28px;
	padding: 20px;
	background: rgba(0,0,0,.25);
	border: 1px solid var(--cp-border);
	border-radius: 14px;
}
.cp-reclamo-stat small {
	display: block;
	font-size: .72rem;
	font-weight: 700;
	color: var(--cp-text-muted);
	letter-spacing: .8px;
	text-transform: uppercase;
	margin-bottom: 4px;
}
.cp-reclamo-stat strong {
	display: block;
	font-size: 1.1rem;
	color: var(--cp-text);
	font-weight: 700;
}
.cp-reclamo-stat strong a {
	color: var(--cp-accent) !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
}
.cp-reclamo-stat strong a:hover { color: var(--cp-primary) !important; }

.cp-reclamo-vote-section {
	display: flex;
	align-items: center;
	gap: 16px;
	flex-wrap: wrap;
	padding: 16px 20px;
	background: rgba(245,185,66,.06);
	border: 1px solid rgba(245,185,66,.2);
	border-radius: 12px;
	margin-bottom: 32px;
}
.cp-reclamo-vote-section small {
	color: var(--cp-text);
	font-weight: 600;
	font-size: .92rem;
}

/* Sección genérica con icono y body */
.cp-reclamo-section {
	margin-bottom: 24px;
	border: 1px solid var(--cp-border);
	border-radius: 16px;
	overflow: hidden;
	background: rgba(0,0,0,.15);
}
.cp-reclamo-section-head {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px 24px;
	border-bottom: 1px solid var(--cp-border);
	background: rgba(255,255,255,.02);
}
.cp-reclamo-section-icon {
	font-size: 1.6rem;
	flex-shrink: 0;
	width: 50px;
	height: 50px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(245,185,66,.18), rgba(224,128,32,.12));
	border: 1px solid rgba(245,185,66,.3);
	border-radius: 50%;
}
.cp-reclamo-section-head h2 {
	margin: 0;
	font-size: 1.15rem;
	color: var(--cp-text);
	font-weight: 700;
	line-height: 1.2;
}
.cp-reclamo-section-head small {
	display: block;
	font-size: .85rem;
	color: var(--cp-text-muted);
	margin-top: 2px;
	font-weight: 400;
}
.cp-reclamo-section-head small strong { color: var(--cp-accent); }
.cp-reclamo-section-body {
	padding: 24px;
	color: var(--cp-text);
	line-height: 1.7;
}
.cp-reclamo-section-body p { margin: 0 0 12px; }
.cp-reclamo-section-body p:last-child { margin-bottom: 0; }

/* Variants por tipo */
.cp-reclamo-claim {
	background: linear-gradient(135deg, rgba(218,54,51,.04), transparent 60%) !important;
	border-color: rgba(218,54,51,.2) !important;
}
.cp-reclamo-claim .cp-reclamo-section-icon {
	background: linear-gradient(135deg, rgba(218,54,51,.18), rgba(218,54,51,.08));
	border-color: rgba(218,54,51,.3);
}

.cp-reclamo-casino-reply {
	background: linear-gradient(135deg, rgba(56,139,253,.04), transparent 60%) !important;
	border-color: rgba(56,139,253,.25) !important;
}
.cp-reclamo-casino-reply .cp-reclamo-section-icon {
	background: linear-gradient(135deg, rgba(56,139,253,.18), rgba(56,139,253,.08));
	border-color: rgba(56,139,253,.3);
}
.cp-reclamo-empty-reply {
	background: rgba(255,255,255,.02) !important;
	border-color: var(--cp-border) !important;
	border-style: dashed !important;
}
.cp-reclamo-empty-reply .cp-reclamo-section-icon {
	background: rgba(255,255,255,.04);
	border-color: var(--cp-border);
}

.cp-reclamo-respond-form {
	background: linear-gradient(135deg, rgba(46,160,67,.04), transparent 60%) !important;
	border-color: rgba(46,160,67,.2) !important;
}
.cp-reclamo-respond-form .cp-reclamo-section-icon {
	background: linear-gradient(135deg, rgba(46,160,67,.18), rgba(46,160,67,.08));
	border-color: rgba(46,160,67,.3);
}

.cp-reclamo-mod-section {
	background: linear-gradient(135deg, rgba(245,185,66,.04), transparent 60%) !important;
	border-color: rgba(245,185,66,.2) !important;
}

.cp-reclamo-reply-meta {
	display: block;
	margin-top: 14px;
	padding-top: 14px;
	border-top: 1px solid var(--cp-border);
	color: var(--cp-text-muted);
	font-size: .85rem;
	font-style: italic;
}
.cp-reclamo-reply-meta strong { color: var(--cp-text); font-style: normal; }

.cp-reclamo-proof {
	margin-top: 20px;
	padding: 14px 18px;
	background: rgba(255,255,255,.04);
	border-radius: 10px;
	border: 1px dashed var(--cp-border);
}
.cp-reclamo-proof a {
	color: var(--cp-accent) !important;
	margin-left: 8px;
	font-weight: 600;
}

/* Form clean (textarea + button) */
.cp-form-clean label {
	display: block;
	color: var(--cp-text);
	font-weight: 600;
	margin-bottom: 8px;
	font-size: .95rem;
}
.cp-form-clean textarea {
	width: 100%;
	padding: 14px;
	background: rgba(0,0,0,.3);
	border: 1px solid var(--cp-border);
	border-radius: 10px;
	color: var(--cp-text);
	font-family: inherit;
	font-size: .95rem;
	line-height: 1.5;
	margin-bottom: 14px;
	outline: none;
	transition: border-color .15s;
	resize: vertical;
}
.cp-form-clean textarea:focus { border-color: var(--cp-accent); }

.cp-reclamo-mod-buttons {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-top: 12px;
}

/* =========================================================
 * SINGLE CASINO REVIEW V2 — estilo casino.org
 * ========================================================= */
.cp-single-casino-v2 .cp-content {
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 18px;
	padding: 36px;
}
@media (max-width: 720px) {
	.cp-single-casino-v2 .cp-content { padding: 22px; }
}

/* Breadcrumb */
.cp-breadcrumb {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	font-size: .85rem;
	color: var(--cp-text-muted);
	margin-bottom: 24px;
	align-items: center;
}
.cp-breadcrumb a {
	color: var(--cp-text-muted) !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
}
.cp-breadcrumb a:hover { color: var(--cp-accent) !important; }
.cp-breadcrumb-current { color: var(--cp-text); font-weight: 600; }

/* Hero del review */
.cp-casino-review-hero {
	margin-bottom: 32px;
	padding: 32px;
	background: linear-gradient(135deg, rgba(245,185,66,.06), rgba(224,128,32,.04));
	border: 1px solid rgba(245,185,66,.2);
	border-radius: 18px;
	position: relative;
	overflow: hidden;
}
.cp-casino-review-hero::before {
	content: '';
	position: absolute;
	right: -60px;
	top: -40px;
	width: 240px;
	height: 240px;
	background: url('../images/tribubet/tiki-mask-sm.png') center/contain no-repeat;
	opacity: 0.12;
	pointer-events: none;
	transform: rotate(-12deg);
}
.cp-casino-review-hero > * { position: relative; }

.cp-review-hero-grid {
	display: grid;
	grid-template-columns: 140px 1fr auto;
	gap: 28px;
	align-items: center;
	margin-bottom: 24px;
}
@media (max-width: 720px) {
	.cp-review-hero-grid {
		grid-template-columns: 1fr;
		text-align: center;
		gap: 18px;
	}
}

.cp-review-hero-logo {
	width: 140px;
	height: 100px;
	background: #fff;
	border-radius: 14px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(0,0,0,.3);
	padding: 12px;
}
.cp-review-hero-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
@media (max-width: 720px) {
	.cp-review-hero-logo { margin: 0 auto; }
}

.cp-review-hero-title {
	font-size: clamp(1.6rem, 3.5vw, 2.4rem);
	color: var(--cp-text);
	margin: 0 0 12px;
	font-weight: 400;
	line-height: 1.1;
}

.cp-review-hero-rating {
	display: flex;
	align-items: center;
	gap: 12px;
	flex-wrap: wrap;
	margin-bottom: 12px;
}
@media (max-width: 720px) {
	.cp-review-hero-rating { justify-content: center; }
}

.cp-review-hero-bonus {
	margin: 12px 0 0;
	color: var(--cp-text);
	font-size: 1.05rem;
}
.cp-review-hero-bonus strong { color: var(--cp-accent); }

.cp-review-hero-cta {
	display: flex;
	flex-direction: column;
	gap: 8px;
	align-items: center;
}
.cp-review-cta-btn {
	font-size: 1.05rem !important;
	padding: 14px 28px !important;
	font-weight: 800 !important;
	box-shadow: 0 8px 24px rgba(224,128,32,.4);
	min-width: 200px;
}
.cp-review-cta-disclaimer {
	color: var(--cp-text-muted);
	font-size: .72rem;
	max-width: 200px;
	text-align: center;
}

/* Quick stats */
.cp-review-quickstats {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
	gap: 14px;
	padding-top: 24px;
	border-top: 1px solid var(--cp-border);
}
.cp-review-quickstat {
	text-align: center;
}
.cp-review-quickstat small {
	display: block;
	font-size: .7rem;
	color: var(--cp-text-muted);
	letter-spacing: .8px;
	text-transform: uppercase;
	margin-bottom: 4px;
	font-weight: 700;
}
.cp-review-quickstat strong {
	color: var(--cp-text);
	font-size: 1.1rem;
	font-weight: 700;
}

/* Sections genéricas */
.cp-review-section {
	margin-top: 36px;
	padding-top: 28px;
	border-top: 1px solid var(--cp-border);
}
.cp-review-section h2 {
	font-size: 1.4rem;
	color: var(--cp-text);
	margin: 0 0 20px;
	font-weight: 400;
}
.cp-review-section p {
	color: var(--cp-text);
	line-height: 1.7;
	margin: 0 0 14px;
}

/* Sub-ratings grid */
.cp-subratings-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
	gap: 14px;
}
.cp-subrating-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 18px;
	background: rgba(0,0,0,.2);
	border: 1px solid var(--cp-border);
	border-radius: 12px;
}
.cp-subrating-icon {
	font-size: 1.6rem;
	width: 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(135deg, rgba(245,185,66,.15), rgba(224,128,32,.08));
	border: 1px solid rgba(245,185,66,.25);
	border-radius: 50%;
	flex-shrink: 0;
}
.cp-subrating-info { flex: 1; min-width: 0; }
.cp-subrating-info small {
	display: block;
	color: var(--cp-text-muted);
	font-size: .8rem;
	margin-bottom: 4px;
}
.cp-subrating-stars {
	display: flex;
	align-items: center;
	gap: 8px;
}
.cp-subrating-stars span {
	color: var(--cp-accent);
	font-weight: 700;
	font-size: .92rem;
}

/* Pros / Cons */
.cp-proscons-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 18px;
}
@media (max-width: 720px) {
	.cp-proscons-grid { grid-template-columns: 1fr; }
}
.cp-pros-card,
.cp-cons-card {
	padding: 22px;
	border-radius: 14px;
	border: 1px solid;
}
.cp-pros-card {
	background: linear-gradient(135deg, rgba(46,160,67,.06), transparent 70%);
	border-color: rgba(46,160,67,.25);
}
.cp-cons-card {
	background: linear-gradient(135deg, rgba(218,54,51,.05), transparent 70%);
	border-color: rgba(218,54,51,.25);
}
.cp-pros-card h3,
.cp-cons-card h3 {
	margin: 0 0 14px;
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--cp-text);
}
.cp-pros-card ul,
.cp-cons-card ul {
	margin: 0;
	padding-left: 20px;
	color: var(--cp-text);
	line-height: 1.6;
}
.cp-pros-card li,
.cp-cons-card li {
	margin-bottom: 8px;
	font-size: .95rem;
}

/* Game type chips */
.cp-games-types {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.cp-game-type-chip {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 16px;
	background: var(--cp-surface);
	border: 1px solid var(--cp-border);
	border-radius: 999px;
	color: var(--cp-text);
	font-weight: 600;
	font-size: .9rem;
}
.cp-game-type-icon { font-size: 1.1rem; }

/* Info table */
.cp-info-table {
	background: rgba(0,0,0,.2);
	border: 1px solid var(--cp-border);
	border-radius: 12px;
	overflow: hidden;
}
.cp-info-row {
	display: grid;
	grid-template-columns: 1fr 1.5fr;
	gap: 14px;
	padding: 14px 20px;
	border-bottom: 1px solid var(--cp-border);
	font-size: .95rem;
}
.cp-info-row:last-child { border-bottom: 0; }
.cp-info-label {
	color: var(--cp-text-muted);
	font-weight: 600;
}
.cp-info-value {
	color: var(--cp-text);
	font-weight: 500;
}
@media (max-width: 600px) {
	.cp-info-row {
		grid-template-columns: 1fr;
		gap: 4px;
	}
}

/* Editorial body */
.cp-review-editorial-body {
	color: var(--cp-text);
	line-height: 1.75;
	font-size: 1rem;
}
.cp-review-editorial-body p { margin: 0 0 14px; }
.cp-review-editorial-body strong { color: var(--cp-accent); }

/* User rating summary */
.cp-user-rating-summary {
	display: flex;
	align-items: center;
	gap: 18px;
	padding: 20px 24px;
	background: rgba(0,0,0,.25);
	border: 1px solid var(--cp-border);
	border-radius: 12px;
	margin-bottom: 20px;
	flex-wrap: wrap;
}

/* =========================================================
 * TRAMA SELVÁTICA DE FONDO — fija, muy sutil
 * ========================================================= */
html, body {
	background-color: var(--cp-bg, #0d0a07) !important;
}

/* Quitar background-image del body que puede scrollearse */
body {
	background-image: none !important;
	position: relative;
	min-height: 100vh;
}

/* Capa fixed de la trama con z-index negativo, completamente independiente del scroll */
body::before {
	content: '' !important;
	display: block !important;
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	background-image: url('../images/tribubet/jungle-bg.svg?v=4') !important;
	background-size: 320px 320px !important;
	background-repeat: repeat !important;
	background-position: 0 0 !important;
	pointer-events: none !important;
	z-index: -1 !important;
	opacity: 1 !important;
}

body::after { display: none !important; }

/* Asegurar que el body permita ::before de fondo */
body {
	z-index: 0;
}

/* Todo el contenido por encima */
.cp-site-header,
.cp-page-content,
main,
.cp-footer {
	position: relative;
}

/* Backgrounds opacos donde queremos legibilidad sin pattern atravesando */
.cp-affhero,
.cp-archive-head,
.cp-tt-hero,
.cp-casino-review-hero,
.cp-content,
.cp-trust-strip,
.cp-section-reclamos-compact,
.cp-section-quick-stats,
.cp-bonus-card,
.cp-casino-row,
.cp-carousel-card,
.cp-thread-item,
.cp-reclamos-compact,
.cp-tt-action,
.cp-tt-explain-item,
.cp-tt-final-cta,
.cp-casino-bottom-cta,
.cp-quick-cat,
.cp-cat-card,
.cp-filter-bar,
.cp-empty-block,
.cp-table-wrap,
.cp-card,
.cp-status-chips,
.cp-reclamo-section {
	position: relative;
}

/* =========================================================
 * TARJETAS DE CASINO EN HILOS (auto-detect + shortcode)
 * ========================================================= */
.cp-thread-casino-cards-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 14px;
	margin: 24px 0;
}
@media (min-width: 700px) {
	.cp-thread-casino-cards-grid { grid-template-columns: 1fr 1fr; }
}

.cp-thread-casino-card {
	display: grid;
	grid-template-columns: 90px 1fr auto;
	gap: 16px;
	align-items: center;
	background: linear-gradient(135deg, var(--cp-surface), rgba(245,185,66,.05));
	border: 1px solid rgba(245,185,66,.25);
	border-radius: 14px;
	padding: 16px 20px;
	transition: transform .15s, border-color .15s, box-shadow .15s;
	position: relative;
	z-index: 2;
}
.cp-thread-casino-card:hover {
	transform: translateY(-2px);
	border-color: var(--cp-accent);
	box-shadow: 0 8px 24px rgba(0,0,0,.25);
}
@media (max-width: 640px) {
	.cp-thread-casino-card {
		grid-template-columns: 60px 1fr;
		grid-template-areas:
			'logo info'
			'cta cta';
	}
	.cp-thread-casino-card-logo { grid-area: logo; }
	.cp-thread-casino-card-info { grid-area: info; }
	.cp-thread-casino-card-cta  { grid-area: cta; flex-direction: row; align-items: center; justify-content: space-between; gap: 14px; padding-top: 12px; border-top: 1px solid var(--cp-border); }
}

.cp-thread-casino-card-logo {
	width: 90px;
	height: 70px;
	background: #fff;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	box-shadow: 0 4px 10px rgba(0,0,0,.2);
	padding: 8px;
}
.cp-thread-casino-card-logo img { max-width: 100%; max-height: 100%; object-fit: contain; }
@media (max-width: 640px) {
	.cp-thread-casino-card-logo { width: 60px; height: 50px; padding: 5px; }
}

.cp-thread-casino-card-info { min-width: 0; }
.cp-thread-casino-card-info h4 {
	margin: 0 0 6px;
	font-size: 1.05rem;
	line-height: 1.2;
	font-weight: 400; /* heading font Bungee no soporta más */
}
.cp-thread-casino-card-info h4 a {
	color: var(--cp-text) !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
}
.cp-thread-casino-card-info h4 a:hover { color: var(--cp-accent) !important; }

.cp-thread-casino-card-rating {
	display: flex;
	align-items: center;
	gap: 8px;
	margin-bottom: 6px;
}
.cp-thread-casino-card-rating span {
	color: var(--cp-accent);
	font-weight: 700;
	font-size: .85rem;
}

.cp-thread-casino-card-bonus,
.cp-thread-casino-card-meta {
	margin: 2px 0;
	font-size: .85rem;
	color: var(--cp-text);
	line-height: 1.3;
}
.cp-thread-casino-card-meta {
	color: var(--cp-text-muted);
	font-size: .8rem;
}

.cp-thread-casino-card-cta {
	display: flex;
	flex-direction: column;
	gap: 6px;
	align-items: stretch;
	min-width: 130px;
}
.cp-thread-casino-card-cta .cp-btn {
	white-space: nowrap;
	padding: 8px 14px !important;
	font-size: .82rem !important;
}
.cp-thread-casino-card-link {
	font-size: .78rem;
	color: var(--cp-text-muted) !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
	text-align: center;
}
.cp-thread-casino-card-link:hover { color: var(--cp-accent) !important; }

/* =========================================================
 * META DEL AUTOR EN SINGLE THREAD — alineación
 * ========================================================= */
.cp-thread-meta {
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
	flex-wrap: wrap !important;
	font-size: .92rem;
	color: var(--cp-text-muted);
	margin: 14px 0 0;
}
.cp-thread-meta > * {
	display: inline-flex;
	align-items: center;
}
.cp-thread-meta .cp-user-avatar,
.cp-thread-meta img.cp-user-avatar,
.cp-thread-meta > img:first-child {
	border-radius: 50%;
	width: 40px !important;
	height: 40px !important;
	object-fit: cover;
	flex-shrink: 0;
}
.cp-thread-meta .cp-author-name,
.cp-thread-meta strong:first-of-type {
	color: var(--cp-text);
	font-weight: 700;
	font-size: 1rem;
}
.cp-thread-meta .cp-user-level,
.cp-thread-meta .cp-level-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 5px 12px;
	background: linear-gradient(135deg, var(--cp-primary), var(--cp-accent));
	color: #fff;
	border-radius: 999px;
	font-size: .78rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .5px;
}
.cp-thread-meta time {
	color: var(--cp-text-muted);
	font-size: .9rem;
}
.cp-thread-meta .cp-thread-cat,
.cp-thread-meta a[href*="cp_forum_cat"] {
	color: var(--cp-accent) !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
	font-weight: 600;
	font-size: .9rem;
	background: rgba(245,185,66,.1);
	border: 1px solid rgba(245,185,66,.25);
	padding: 4px 12px;
	border-radius: 999px;
}
.cp-thread-meta .cp-thread-cat:hover { background: rgba(245,185,66,.18); }

/* Separador visual entre items con bullet */
.cp-thread-meta > *:not(:last-child)::after {
	content: '';
}

/* =========================================================
 * SINGLE THREAD CONTENT — typografía + spacing
 * ========================================================= */
.cp-thread-content,
.cp-thread-content-body {
	font-size: 1.02rem;
	line-height: 1.75;
	color: var(--cp-text);
	margin-top: 32px;
}
.cp-thread-content p,
.cp-thread-content-body p {
	margin: 0 0 18px;
}
.cp-thread-content h2,
.cp-thread-content h3,
.cp-thread-content h4,
.cp-thread-content-body h2,
.cp-thread-content-body h3,
.cp-thread-content-body h4 {
	margin: 32px 0 16px;
	font-weight: 400;
}
.cp-thread-content ul,
.cp-thread-content ol,
.cp-thread-content-body ul,
.cp-thread-content-body ol {
	margin: 16px 0;
	padding-left: 24px;
}
.cp-thread-content li,
.cp-thread-content-body li {
	margin-bottom: 8px;
	color: var(--cp-text);
}

/* =========================================================
 * AUTH PAGES (login, registro, recuperar password)
 * ========================================================= */
.cp-auth-wrap {
	min-height: calc(100vh - 200px);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 60px 20px;
	position: relative;
	z-index: 2;
}

.cp-auth-decoration {
	position: absolute;
	pointer-events: none;
	z-index: 0;
	opacity: 0.18;
}
.cp-auth-decoration-left {
	top: 10%;
	left: 5%;
	width: 280px;
	height: 280px;
	background: url('../images/tribubet/tiki-mask-sm.png') center/contain no-repeat;
	transform: rotate(-15deg);
}
.cp-auth-decoration-right {
	bottom: 5%;
	right: 5%;
	width: 240px;
	height: 240px;
	background: url('../images/tribubet/leaf.svg') center/contain no-repeat;
	transform: rotate(35deg);
	opacity: 0.25;
}
@media (max-width: 900px) {
	.cp-auth-decoration { display: none; }
}

.cp-auth-card {
	width: 100%;
	max-width: 480px;
	background: var(--cp-surface);
	border: 1px solid rgba(245,185,66,.25);
	border-radius: 20px;
	padding: 44px 40px;
	box-shadow: 0 20px 60px rgba(0,0,0,.5), 0 0 0 1px rgba(245,185,66,.05);
	position: relative;
	z-index: 3;
	overflow: hidden;
}
.cp-auth-card::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	right: 0;
	height: 4px;
	background: linear-gradient(90deg, var(--cp-primary), var(--cp-accent), var(--cp-secondary));
}
.cp-auth-card-wide { max-width: 640px; }

@media (max-width: 600px) {
	.cp-auth-card { padding: 32px 24px; }
}

.cp-auth-logo {
	text-align: center;
	margin-bottom: 24px;
}
.cp-auth-logo .cp-logo-img,
.cp-auth-logo img {
	max-height: 70px;
	width: auto;
	margin: 0 auto;
	display: inline-block;
	filter: drop-shadow(0 4px 12px rgba(0,0,0,.4));
}

.cp-auth-title {
	margin: 0 0 8px;
	font-size: 1.6rem;
	color: var(--cp-text);
	text-align: center;
	font-weight: 400;
	line-height: 1.2;
}

.cp-auth-sub {
	text-align: center;
	color: var(--cp-text-muted);
	margin: 0 0 28px;
	font-size: .95rem;
}

/* Mensajes (error/success/warning) */
.cp-auth-msg {
	padding: 12px 16px;
	border-radius: 10px;
	margin-bottom: 18px;
	font-size: .92rem;
	border: 1px solid;
}
.cp-auth-msg-error {
	background: rgba(218,54,51,.12);
	border-color: rgba(218,54,51,.4);
	color: #ff7a7a;
}
.cp-auth-msg-success {
	background: rgba(46,160,67,.12);
	border-color: rgba(46,160,67,.4);
	color: #6fdb84;
}
.cp-auth-msg-warning {
	background: rgba(245,185,66,.12);
	border-color: rgba(245,185,66,.4);
	color: var(--cp-accent);
}

/* Form */
.cp-auth-form { display: block; }

.cp-auth-grid-2 {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
@media (max-width: 600px) {
	.cp-auth-grid-2 { grid-template-columns: 1fr; gap: 0; }
}

.cp-auth-field {
	margin-bottom: 18px;
	display: block;
}
.cp-auth-field label {
	display: flex;
	justify-content: space-between;
	align-items: center;
	color: var(--cp-text);
	font-weight: 600;
	font-size: .92rem;
	margin-bottom: 8px;
}
.cp-auth-field-link {
	color: var(--cp-accent) !important;
	font-weight: 500;
	font-size: .82rem;
	text-decoration: none !important;
	border-bottom: 0 !important;
}
.cp-auth-field-link:hover { color: var(--cp-primary) !important; }

.cp-auth-field input[type="text"],
.cp-auth-field input[type="email"],
.cp-auth-field input[type="password"] {
	width: 100%;
	padding: 13px 16px;
	background: rgba(0,0,0,.3);
	border: 1px solid var(--cp-border);
	border-radius: 10px;
	color: var(--cp-text);
	font-family: inherit;
	font-size: .98rem;
	outline: none;
	transition: border-color .15s, background-color .15s, box-shadow .15s;
	box-sizing: border-box;
}
.cp-auth-field input:focus {
	border-color: var(--cp-accent);
	background: rgba(0,0,0,.4);
	box-shadow: 0 0 0 3px rgba(245,185,66,.15);
}
.cp-auth-field input::placeholder {
	color: var(--cp-text-muted);
	opacity: .6;
}
.cp-auth-field input:invalid:not(:placeholder-shown) {
	border-color: rgba(218,54,51,.4);
}

.cp-auth-field-with-toggle {
	position: relative;
}
.cp-auth-field-with-toggle input {
	padding-right: 50px !important;
}
.cp-auth-toggle-pass {
	position: absolute;
	right: 8px;
	top: 50%;
	transform: translateY(-50%);
	background: transparent;
	border: 0;
	cursor: pointer;
	padding: 8px 12px;
	font-size: 1.1rem;
	opacity: .7;
	transition: opacity .15s, transform .15s;
}
.cp-auth-toggle-pass:hover {
	opacity: 1;
	transform: translateY(-50%) scale(1.15);
}

.cp-auth-hint {
	display: block;
	color: var(--cp-text-muted);
	font-size: .8rem;
	margin-top: 6px;
	opacity: .8;
}

.cp-auth-row {
	margin-bottom: 22px;
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
}

.cp-auth-checkbox {
	display: flex !important;
	align-items: flex-start;
	gap: 10px;
	cursor: pointer;
	font-size: .88rem;
	color: var(--cp-text-muted);
	font-weight: 400;
	line-height: 1.4;
}
.cp-auth-checkbox input[type="checkbox"] {
	width: 18px;
	height: 18px;
	margin: 0;
	cursor: pointer;
	flex-shrink: 0;
	margin-top: 2px;
	accent-color: var(--cp-accent);
}
.cp-auth-checkbox span { display: inline; }
.cp-auth-checkbox a {
	color: var(--cp-accent) !important;
	text-decoration: none !important;
	border-bottom: 1px dashed currentColor !important;
}

/* Botón submit grande */
.cp-auth-submit {
	width: 100%;
	padding: 14px 22px !important;
	background: linear-gradient(135deg, var(--cp-primary), var(--cp-accent)) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 10px !important;
	font-family: var(--cp-font-heading, 'Bungee'), sans-serif !important;
	font-size: 1rem !important;
	font-weight: 400 !important;
	letter-spacing: 1.2px !important;
	text-transform: uppercase !important;
	cursor: pointer;
	transition: transform .15s, box-shadow .15s;
	box-shadow: 0 6px 18px rgba(224,128,32,.35);
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
}
.cp-auth-submit:hover {
	transform: translateY(-2px);
	box-shadow: 0 10px 28px rgba(224,128,32,.5);
}
.cp-auth-submit:active { transform: translateY(0); }

/* Divider */
.cp-auth-divider {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 24px 0;
	color: var(--cp-text-muted);
	font-size: .82rem;
}
.cp-auth-divider::before,
.cp-auth-divider::after {
	content: '';
	flex: 1;
	height: 1px;
	background: var(--cp-border);
}
.cp-auth-divider span {
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 1.5px;
}

/* Footer */
.cp-auth-footer {
	text-align: center;
	color: var(--cp-text-muted);
	font-size: .92rem;
	margin: 0;
}
.cp-auth-footer-link {
	color: var(--cp-accent) !important;
	font-weight: 700;
	text-decoration: none !important;
	border-bottom: 0 !important;
	margin-left: 4px;
	transition: color .15s;
}
.cp-auth-footer-link:hover { color: var(--cp-primary) !important; }

/* =========================================================
 * BOTONES CTA "GUÍA" / DESTACADOS — diseño cuadrado profesional
 * Anti vibe-coding: forma rectangular con esquinas suaves
 * ========================================================= */
.cp-btn-square,
.cp-btn-feature,
.cp-cta-link,
.menu-item-cta a,
a.cp-btn-cta,
.wp-block-button__link {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	padding: 14px 28px !important;
	background: linear-gradient(135deg, var(--cp-surface), rgba(245,185,66,.05)) !important;
	border: 1.5px solid rgba(245,185,66,.4) !important;
	border-radius: 4px !important;
	color: var(--cp-text) !important;
	font-family: var(--cp-font-heading, 'Bungee'), 'Bungee', cursive !important;
	font-size: .92rem !important;
	font-weight: 400 !important;
	text-transform: uppercase !important;
	letter-spacing: 1px !important;
	text-decoration: none !important;
	border-bottom: 0 !important;
	box-shadow: 0 2px 8px rgba(0,0,0,.2);
	transition: all .15s !important;
	position: relative;
}
.cp-btn-square:hover,
.cp-btn-feature:hover,
.cp-cta-link:hover,
.menu-item-cta a:hover,
a.cp-btn-cta:hover,
.wp-block-button__link:hover {
	border-color: var(--cp-accent) !important;
	background: linear-gradient(135deg, rgba(245,185,66,.08), rgba(224,128,32,.04)) !important;
	transform: translateY(-1px);
	box-shadow: 0 4px 16px rgba(0,0,0,.3);
	color: var(--cp-accent) !important;
}
.cp-btn-square::before,
a.cp-btn-cta::before {
	content: '';
	position: absolute;
	left: 0;
	top: 0;
	bottom: 0;
	width: 3px;
	background: linear-gradient(180deg, var(--cp-primary), var(--cp-accent));
	border-radius: 4px 0 0 4px;
}

/* Botón con icono al inicio */
.cp-btn-square .cp-btn-icon,
a.cp-btn-cta .cp-btn-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
	color: var(--cp-accent);
}

/* Override pills extremas en buttons del header/menu para que sean rectangulares */
.cp-site-header .cp-btn,
.cp-header-cta {
	border-radius: 4px !important;
}

/* =========================================================
 * BANNER DE ESLOGAN — encima del footer
 * "La tribu de los que juegan en serio"
 * ========================================================= */
.cp-slogan-band {
	position: relative;
	overflow: hidden;
	background: linear-gradient(135deg, var(--cp-primary, #e08020) 0%, #c46818 50%, var(--cp-secondary, #5a8a3a) 100%);
	padding: 48px 24px;
	margin-top: 48px;
	border-top: 3px solid var(--cp-accent, #f5b942);
	border-bottom: 3px solid var(--cp-accent, #f5b942);
	box-shadow: inset 0 0 60px rgba(0, 0, 0, 0.2);
	width: 100%;
	display: block;
}
.cp-slogan-band::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: url('../images/tribubet/jungle-bg.svg');
	background-size: 280px 280px;
	background-repeat: repeat;
	opacity: 0.15;
	pointer-events: none;
}
.cp-slogan-band::after {
	content: '';
	position: absolute;
	left: 0; right: 0;
	top: 50%;
	height: 1px;
	background: linear-gradient(90deg, transparent, rgba(245,232,211,0.3), transparent);
	pointer-events: none;
}
.cp-slogan-band-inner {
	position: relative;
	max-width: 1100px;
	width: 100%;
	margin-left: auto;
	margin-right: auto;
	display: flex;
	flex-direction: row;
	align-items: center;
	justify-content: center;
	gap: 24px;
	z-index: 1;
	text-align: center;
}
.cp-slogan-text {
	margin: 0;
	font-family: var(--cp-font-heading, 'Bungee'), 'Bungee', cursive;
	font-size: clamp(1.4rem, 3.5vw, 2.4rem);
	color: #f5e8d3;
	text-align: center;
	line-height: 1.2;
	letter-spacing: 1px;
	text-shadow: 0 3px 12px rgba(0, 0, 0, 0.5), 0 1px 2px rgba(0, 0, 0, 0.7);
	font-weight: 400;
	flex: 0 1 auto;
}
.cp-slogan-leaf {
	font-size: clamp(1.1rem, 2vw, 1.6rem);
	color: var(--cp-accent, #f5b942);
	opacity: 0.9;
	flex: 0 0 auto;
	flex-shrink: 0;
	text-shadow: 0 2px 6px rgba(0,0,0,0.4);
	display: inline-block;
}
@media (max-width: 600px) {
	.cp-slogan-band { padding: 36px 16px; }
	.cp-slogan-band-inner { gap: 14px; }
}

/* =========================================================
 * SISTEMA DE PUBLICIDAD — slots, placeholders, creativos
 * ========================================================= */

/* Wrapper genérico de slot */
.cp-ad-row {
	max-width: 1100px;
	margin: 24px auto;
	padding: 0 16px;
	display: flex;
	justify-content: center;
}
.cp-ad-row .cp-ad,
.cp-ad-row .cp-ad-placeholder {
	width: 100%;
	max-width: 970px;
}

/* Placeholder (visible solo a admins cuando no hay creativo)
   Muestra el espacio EXACTO que ocuparía el banner real, con línea gráfica delineada.
   Las dimensiones vienen de --cp-ad-w / --cp-ad-h (CSS custom properties seteadas en PHP).
*/
.cp-ad-placeholder {
	box-sizing: border-box;
	width: 100%;
	max-width: var(--cp-ad-w, 100%);
	aspect-ratio: var(--cp-ad-w, 970) / var(--cp-ad-h, 90);
	margin: 16px auto;
	display: flex;
	align-items: center;
	justify-content: center;
	background:
		repeating-linear-gradient(
			45deg,
			rgba(245, 185, 66, 0.05) 0,
			rgba(245, 185, 66, 0.05) 14px,
			rgba(224, 128, 32, 0.05) 14px,
			rgba(224, 128, 32, 0.05) 28px
		);
	border: 2px dashed rgba(245, 185, 66, 0.55);
	border-radius: 6px;
	padding: 12px 20px;
	color: #c87f1f;
	position: relative;
	transition: background 0.2s, border-color 0.2s;
}
.cp-ad-placeholder:hover {
	background:
		repeating-linear-gradient(
			45deg,
			rgba(245, 185, 66, 0.1) 0,
			rgba(245, 185, 66, 0.1) 14px,
			rgba(224, 128, 32, 0.1) 14px,
			rgba(224, 128, 32, 0.1) 28px
		);
	border-color: rgba(245, 185, 66, 0.85);
}
/* Marcas de esquina tipo "crop marks" para reforzar la idea de slot delimitado */
.cp-ad-placeholder::before,
.cp-ad-placeholder::after {
	content: '';
	position: absolute;
	width: 14px;
	height: 14px;
	border: 2px solid var(--cp-accent, #f5b942);
	pointer-events: none;
}
.cp-ad-placeholder::before {
	top: -2px;
	left: -2px;
	border-right: none;
	border-bottom: none;
}
.cp-ad-placeholder::after {
	bottom: -2px;
	right: -2px;
	border-left: none;
	border-top: none;
}
.cp-ad-placeholder-inner {
	text-align: center;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 4px;
	max-width: 100%;
	max-height: 100%;
	overflow: hidden;
}
.cp-ad-placeholder-icon {
	font-size: clamp(1.1rem, 3vw, 1.5rem);
	line-height: 1;
	opacity: 0.7;
}
.cp-ad-placeholder-label {
	font-family: var(--cp-font-heading, 'Bungee'), cursive;
	font-size: clamp(0.7rem, 1.4vw, 0.95rem);
	letter-spacing: 1px;
	color: #c87f1f;
	line-height: 1.1;
	text-transform: uppercase;
}
.cp-ad-placeholder-size {
	font-family: 'Consolas', 'Monaco', monospace;
	font-size: clamp(0.65rem, 1.1vw, 0.78rem);
	color: #888;
	letter-spacing: 0.5px;
	background: rgba(255, 255, 255, 0.5);
	padding: 2px 8px;
	border-radius: 3px;
}
.cp-ad-placeholder-cta {
	display: inline-block;
	font-size: clamp(0.65rem, 1.1vw, 0.78rem);
	color: var(--cp-primary, #e08020) !important;
	font-weight: 700;
	text-decoration: none !important;
	margin-top: 4px;
	padding: 3px 10px;
	border: 1px solid currentColor;
	border-radius: 4px;
	transition: background 0.15s, color 0.15s;
}
.cp-ad-placeholder-cta:hover {
	background: var(--cp-primary, #e08020) !important;
	color: #fff !important;
}

/* === Variantes específicas por slot ===
   Cuando los placeholders son MUY chicos (ej. 90px de alto), ocultar elementos
   redundantes para que entren bien.
*/
.cp-ad-placeholder.cp-ad-slot-header_top,
.cp-ad-placeholder.cp-ad-slot-footer_top,
.cp-ad-placeholder.cp-ad-slot-archive_top,
.cp-ad-placeholder.cp-ad-slot-single_top {
	/* Banners horizontales (970×90, 728×90) - layout en row */
}
.cp-ad-placeholder.cp-ad-slot-header_top .cp-ad-placeholder-inner,
.cp-ad-placeholder.cp-ad-slot-footer_top .cp-ad-placeholder-inner,
.cp-ad-placeholder.cp-ad-slot-archive_top .cp-ad-placeholder-inner,
.cp-ad-placeholder.cp-ad-slot-single_top .cp-ad-placeholder-inner {
	flex-direction: row;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
}
.cp-ad-placeholder.cp-ad-slot-header_top .cp-ad-placeholder-icon,
.cp-ad-placeholder.cp-ad-slot-footer_top .cp-ad-placeholder-icon,
.cp-ad-placeholder.cp-ad-slot-archive_top .cp-ad-placeholder-icon,
.cp-ad-placeholder.cp-ad-slot-single_top .cp-ad-placeholder-icon {
	font-size: 1.2rem;
}

/* Mobile sticky: muy pequeño, layout compacto */
.cp-ad-placeholder.cp-ad-slot-mobile_sticky {
	margin: 0;
}
.cp-ad-placeholder.cp-ad-slot-mobile_sticky .cp-ad-placeholder-cta {
	display: none;
}

/* Responsivo: en mobile bajar el max-width al ancho del viewport */
@media (max-width: 768px) {
	.cp-ad-placeholder {
		max-width: min(var(--cp-ad-w, 100%), calc(100vw - 32px));
	}
}

/* Inline ad dentro del contenido */
.cp-ad-inline-wrap {
	margin: 28px 0;
}

/* Tipo: HTML (banner externo) */
.cp-ad-html {
	display: flex;
	justify-content: center;
	align-items: center;
}

/* Tipo: Casino destacado */
.cp-ad-casino-cta {
	display: block;
	background: linear-gradient(135deg, var(--cp-surface, #1a1410), rgba(245,185,66,0.08));
	border: 2px solid var(--cp-accent, #f5b942);
	border-radius: 12px;
	padding: 16px 20px;
	text-decoration: none !important;
	color: var(--cp-text, #f5e8d3) !important;
	border-bottom: 0 !important;
	position: relative;
	overflow: hidden;
	transition: transform .15s, box-shadow .15s;
}
.cp-ad-casino-cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(245,185,66,0.25);
}
.cp-ad-sponsored-badge {
	position: absolute;
	top: 0;
	right: 12px;
	background: var(--cp-primary, #e08020);
	color: #fff;
	padding: 3px 10px;
	font-size: 0.65rem;
	font-weight: 700;
	letter-spacing: 1.5px;
	border-radius: 0 0 6px 6px;
}
.cp-ad-casino-body {
	display: grid;
	grid-template-columns: 70px 1fr auto;
	align-items: center;
	gap: 16px;
}
.cp-ad-casino-logo-wrap img {
	max-width: 70px;
	max-height: 70px;
	object-fit: contain;
	border-radius: 8px;
	background: #fff;
	padding: 6px;
}
.cp-ad-casino-fallback {
	width: 70px;
	height: 70px;
	background: var(--cp-primary, #e08020);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: var(--cp-font-heading, 'Bungee'), cursive;
	font-size: 2rem;
	border-radius: 8px;
}
.cp-ad-casino-name {
	font-family: var(--cp-font-heading, 'Bungee'), cursive;
	font-size: 1.1rem;
	color: var(--cp-accent, #f5b942);
	margin-bottom: 4px;
}
.cp-ad-casino-bonus {
	font-size: 0.9rem;
	color: var(--cp-text, #f5e8d3);
	margin-bottom: 4px;
}
.cp-ad-casino-rating {
	font-size: 0.85rem;
	color: var(--cp-accent, #f5b942);
	font-weight: 600;
}
.cp-ad-casino-cta-btn {
	background: var(--cp-primary, #e08020);
	color: #fff !important;
	padding: 12px 22px;
	border-radius: 6px;
	font-family: var(--cp-font-heading, 'Bungee'), cursive;
	font-weight: 400;
	letter-spacing: 1px;
	text-transform: uppercase;
	font-size: 0.85rem;
	white-space: nowrap;
}

/* Tipo: Imagen */
.cp-ad-image {
	display: block;
	line-height: 0;
	border-radius: 8px;
	overflow: hidden;
}
.cp-ad-image img {
	width: 100%;
	height: auto;
	display: block;
}

/* Tipo: Texto promocional */
.cp-ad-text-card {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	background: linear-gradient(135deg, var(--cp-surface, #1a1410), rgba(90,138,58,0.1));
	border-left: 4px solid var(--cp-secondary, #5a8a3a);
	border-radius: 8px;
	padding: 18px 22px;
	text-decoration: none !important;
	color: var(--cp-text, #f5e8d3) !important;
	border-bottom: 0 !important;
	position: relative;
}
.cp-ad-text-card:hover {
	background: linear-gradient(135deg, var(--cp-surface, #1a1410), rgba(90,138,58,0.18));
}
.cp-ad-text-title {
	font-family: var(--cp-font-heading, 'Bungee'), cursive;
	font-size: 1.05rem;
	color: var(--cp-accent, #f5b942);
	margin-bottom: 4px;
}
.cp-ad-text-sub {
	font-size: 0.88rem;
	opacity: 0.85;
}
.cp-ad-text-cta {
	background: var(--cp-secondary, #5a8a3a);
	color: #fff;
	padding: 10px 20px;
	border-radius: 6px;
	font-family: var(--cp-font-heading, 'Bungee'), cursive;
	font-size: 0.8rem;
	letter-spacing: 1px;
	text-transform: uppercase;
	white-space: nowrap;
}

/* Mobile sticky */
.cp-ad-mobile-sticky {
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	background: var(--cp-surface, #1a1410);
	border-top: 2px solid var(--cp-accent, #f5b942);
	padding: 8px;
	z-index: 999;
	box-shadow: 0 -8px 24px rgba(0,0,0,0.4);
}
.cp-ad-mobile-sticky-close {
	position: absolute;
	top: -28px;
	right: 8px;
	width: 28px;
	height: 28px;
	background: var(--cp-primary, #e08020);
	color: #fff;
	border: 0;
	border-radius: 50%;
	font-size: 1.1rem;
	cursor: pointer;
	line-height: 1;
}
.cp-ad-mobile-sticky .cp-ad {
	max-width: 320px;
	margin: 0 auto;
}

/* Mobile responsive */
@media (max-width: 700px) {
	.cp-ad-casino-body {
		grid-template-columns: 50px 1fr;
		gap: 12px;
	}
	.cp-ad-casino-logo-wrap img,
	.cp-ad-casino-fallback {
		width: 50px;
		height: 50px;
	}
	.cp-ad-casino-cta-btn {
		grid-column: 1 / -1;
		text-align: center;
		margin-top: 8px;
	}
	.cp-ad-text-card {
		flex-direction: column;
		text-align: center;
	}
}
