		/* ─────────── Banner bottom fixed ─────────── */
		#tb-cookie-banner {
			position: fixed;
			left: 16px;
			right: 16px;
			bottom: 16px;
			z-index: 80;
			max-width: 1100px;
			margin-inline: auto;
			border-radius: 16px;
			background: hsl(0 0% 7%);
			color: hsl(0 0% 98%);
			border: 1px solid hsl(240 4% 18%);
			box-shadow: 0 20px 60px rgba(0, 0, 0, 0.5);
			animation: tb-cookie-slide-in .35s ease both;
		}
		@keyframes tb-cookie-slide-in {
			from { transform: translateY(20px); opacity: 0; }
			to   { transform: translateY(0); opacity: 1; }
		}
		.tb-cookie-banner__inner {
			padding: 18px 20px;
			display: flex;
			flex-direction: column;
			gap: 16px;
		}
		@media (min-width: 768px) {
			.tb-cookie-banner__inner { flex-direction: row; align-items: center; gap: 24px; padding: 20px 24px; }
			.tb-cookie-banner__copy  { flex: 1; }
		}
		.tb-cookie-banner__title {
			font-family: 'Molot', 'Anton', sans-serif;
			letter-spacing: 0.02em;
			font-size: 1.25rem;
			margin: 0 0 4px;
			color: hsl(0 0% 98%);
		}
		.tb-cookie-banner__text {
			font-size: 0.8125rem;
			line-height: 1.55;
			margin: 0;
			color: hsl(240 5% 70%);
		}
		.tb-cookie-banner__text a { color: hsl(0 100% 65%); text-decoration: underline; text-underline-offset: 2px; }
		.tb-cookie-banner__actions {
			display: flex;
			flex-wrap: wrap;
			gap: 8px;
		}
		@media (min-width: 768px) {
			.tb-cookie-banner__actions { flex-wrap: nowrap; }
		}

		/* ─────────── Botones del banner / modal ─────────── */
		.tb-cookie-btn {
			display: inline-flex;
			align-items: center;
			justify-content: center;
			height: 40px;
			padding: 0 18px;
			border-radius: 8px;
			border: 1px solid transparent;
			font-size: 0.75rem;
			font-weight: 700;
			letter-spacing: 0.08em;
			text-transform: uppercase;
			cursor: pointer;
			transition: background-color .15s ease, border-color .15s ease;
			background: transparent;
			color: inherit;
			font-family: 'Barlow', system-ui, sans-serif;
		}
		.tb-cookie-btn--primary {
			background: hsl(357 71% 47%);
			color: #fff;
			border-color: hsl(357 71% 47%);
		}
		.tb-cookie-btn--primary:hover { background: hsl(354 80% 39%); border-color: hsl(354 80% 39%); }
		.tb-cookie-btn--ghost {
			background: transparent;
			color: hsl(0 0% 98%);
			border-color: hsl(240 4% 22%);
		}
		.tb-cookie-btn--ghost:hover { background: hsl(240 4% 16%); }

		/* ─────────── Modal de preferencias ─────────── */
		#tb-cookie-prefs {
			position: fixed;
			inset: 0;
			z-index: 90;
			display: flex;
			align-items: flex-end;
			justify-content: center;
			padding: 16px;
		}
		@media (min-width: 640px) {
			#tb-cookie-prefs { align-items: center; padding: 32px; }
		}
		.tb-cookie-prefs__backdrop {
			position: absolute;
			inset: 0;
			background: rgba(0, 0, 0, 0.65);
			backdrop-filter: blur(4px);
			-webkit-backdrop-filter: blur(4px);
		}
		.tb-cookie-prefs__panel {
			position: relative;
			width: 100%;
			max-width: 560px;
			max-height: 85vh;
			overflow-y: auto;
			background: hsl(0 0% 7%);
			color: hsl(0 0% 98%);
			border-radius: 16px;
			border: 1px solid hsl(240 4% 18%);
			box-shadow: 0 30px 80px rgba(0, 0, 0, 0.6);
			animation: tb-cookie-prefs-in .25s ease both;
		}
		@keyframes tb-cookie-prefs-in {
			from { transform: translateY(20px); opacity: 0; }
			to   { transform: translateY(0); opacity: 1; }
		}
		.tb-cookie-prefs__header {
			display: flex;
			align-items: flex-start;
			justify-content: space-between;
			gap: 16px;
			padding: 20px 24px 12px;
			border-bottom: 1px solid hsl(240 4% 18%);
		}
		.tb-cookie-prefs__kicker {
			font-size: 0.6875rem;
			font-weight: 700;
			letter-spacing: 0.2em;
			text-transform: uppercase;
			color: hsl(0 100% 65%);
			margin: 0 0 4px;
		}
		.tb-cookie-prefs__title {
			font-family: 'Molot', 'Anton', sans-serif;
			font-size: 1.5rem;
			margin: 0;
			letter-spacing: 0.02em;
		}
		.tb-cookie-prefs__close {
			background: transparent;
			border: 0;
			color: hsl(240 5% 70%);
			font-size: 2rem;
			line-height: 1;
			cursor: pointer;
			padding: 0 4px;
		}
		.tb-cookie-prefs__close:hover { color: hsl(0 0% 98%); }
		.tb-cookie-prefs__body { padding: 16px 24px; display: flex; flex-direction: column; gap: 12px; }
		.tb-cookie-prefs__intro { font-size: 0.8125rem; color: hsl(240 5% 70%); margin: 0 0 8px; line-height: 1.6; }
		.tb-cookie-cat {
			border: 1px solid hsl(240 4% 18%);
			border-radius: 12px;
			padding: 14px 16px;
			background: hsl(240 6% 9%);
		}
		.tb-cookie-cat__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; }
		.tb-cookie-cat__name {
			font-size: 0.9375rem;
			font-weight: 700;
			margin: 0 0 4px;
			display: flex;
			align-items: center;
			gap: 8px;
			flex-wrap: wrap;
		}
		.tb-cookie-cat__badge {
			font-size: 0.625rem;
			font-weight: 700;
			letter-spacing: 0.1em;
			text-transform: uppercase;
			padding: 2px 8px;
			border-radius: 999px;
			background: hsl(240 4% 16%);
			color: hsl(240 5% 70%);
		}
		.tb-cookie-cat__desc { font-size: 0.75rem; line-height: 1.55; color: hsl(240 5% 70%); margin: 0; }
		.tb-cookie-prefs__footer {
			display: flex;
			flex-wrap: wrap;
			gap: 8px;
			justify-content: flex-end;
			padding: 16px 24px 20px;
			border-top: 1px solid hsl(240 4% 18%);
		}

		/* Switch toggle */
		.tb-cookie-switch { position: relative; display: inline-block; width: 40px; height: 22px; flex-shrink: 0; }
		.tb-cookie-switch input { opacity: 0; width: 0; height: 0; }
		.tb-cookie-switch__track {
			position: absolute;
			cursor: pointer;
			inset: 0;
			background: hsl(240 4% 22%);
			border-radius: 999px;
			transition: background-color .2s ease;
		}
		.tb-cookie-switch__track::before {
			content: '';
			position: absolute;
			top: 3px;
			left: 3px;
			width: 16px;
			height: 16px;
			border-radius: 50%;
			background: hsl(0 0% 98%);
			transition: transform .2s ease;
		}
		.tb-cookie-switch input:checked + .tb-cookie-switch__track { background: hsl(357 71% 47%); }
		.tb-cookie-switch input:checked + .tb-cookie-switch__track::before { transform: translateX(18px); }
		.tb-cookie-switch--locked .tb-cookie-switch__track { opacity: 0.55; cursor: not-allowed; }
		.tb-cookie-switch--locked .tb-cookie-switch__track::before { background: hsl(0 0% 65%); }

		/* Esconde mientras hidden — el JS gestiona el `hidden` attribute. */
		#tb-cookie-banner[hidden], #tb-cookie-prefs[hidden] { display: none !important; }

		/* Cuando el banner está visible, levantamos el WA float para no taparse. */
		body.tb-cookie-banner-open .tb-wa-float { transform: translateY(-110px); transition: transform .3s ease; }
