/*!
 * Delefant Cookie Studio – plantillas de banner
 * Todas las medidas en px: muchas webs Bricks usan html{font-size:62.5%}.
 */

/* ------------------------------------------------------------------
 * 1. Ocultar la interfaz nativa de Complianz (solo si nuestro JS está activo)
 * ---------------------------------------------------------------- */
html.dcs-active #cmplz-cookiebanner-container,
html.dcs-active #cmplz-manage-consent {
	display: none !important;
}
body.cmplz-banner-active .dcs-banner,
body.cmplz-banner-active .dcs-banner *,
body.cmplz-banner-active .dcs-launcher,
body.cmplz-banner-active .dcs-launcher * {
	pointer-events: auto !important;
	user-select: auto !important;
}

/* ------------------------------------------------------------------
 * 2. Tokens
 * ---------------------------------------------------------------- */
#dcs{
	--dcs-accent: #1f4dff;
	--dcs-accent-ink: #ffffff;
	--dcs-surface: #ffffff;
	--dcs-ink: #111111;
	--dcs-font-heading: inherit;
	--dcs-font-body: inherit;
	--dcs-radius: 10px;
	--dcs-ease: cubic-bezier(0.16, 1, 0.3, 1);
	--dcs-ease-in: cubic-bezier(0.7, 0, 0.84, 0);
	--dcs-ease-io: cubic-bezier(0.83, 0, 0.17, 1);
	--dcs-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
	--dcs-dur: 900ms;
	--dcs-stagger: 70ms;
	--dcs-z: 2147483000; /* valores enteros sin calc(): Firefox pierde precisión con números tan altos */
	--dcs-z-backdrop: 2147482000;
	--dcs-z-launcher: 2147481000;
	--dcs-gutter: 24px;

	--dcs-muted: color-mix(in srgb, var(--dcs-ink) 66%, var(--dcs-surface));
	--dcs-line: color-mix(in srgb, var(--dcs-ink) 12%, transparent);
	--dcs-soft: color-mix(in srgb, var(--dcs-ink) 5%, var(--dcs-surface));
	--dcs-card-r: min(calc(var(--dcs-radius) * 2), 28px);
	--dcs-btn-r: min(var(--dcs-radius), 999px);
	--dcs-shadow: 0 1px 2px rgb(0 0 0 / 0.05), 0 12px 32px -10px rgb(0 0 0 / 0.18), 0 48px 96px -32px rgb(0 0 0 / 0.28);

	font-family: var(--dcs-font-body);
	color: var(--dcs-ink);
	font-size: 15px;
	line-height: 1.5;
	-webkit-font-smoothing: antialiased;
	text-align: left;
}

/* Reset defensivo: Bricks y Elementor dan estilos globales a button, p, a… */
#dcs *,
#dcs *::before,
#dcs *::after{
	box-sizing: border-box;
}
#dcs button{
	all: unset;
	box-sizing: border-box;
	cursor: pointer;
	font: inherit;
	color: inherit;
	-webkit-tap-highlight-color: transparent;
}
#dcs button:disabled{
	cursor: default;
}
#dcs p,
#dcs ul,
#dcs li{
	margin: 0;
	padding: 0;
	list-style: none;
}
#dcs a{
	color: inherit;
}
#dcs svg{
	display: block;
	width: 100%;
	height: 100%;
}
#dcs :focus-visible{
	outline: 2px solid var(--dcs-accent);
	outline-offset: 3px;
}
#dcs .dcs-sr{
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}

/* ------------------------------------------------------------------
 * 3. Contenedor del banner + estados de animación
 * ---------------------------------------------------------------- */
#dcs .dcs-banner{
	position: fixed;
	z-index: var(--dcs-z);
	display: flex;
	flex-direction: column;
	max-height: calc(100vh - 32px);
	max-height: calc(100dvh - 32px);
	background: var(--dcs-surface);
	color: var(--dcs-ink);
	border-radius: var(--dcs-card-r);
	box-shadow: var(--dcs-shadow);
	overflow: hidden;
	outline: none;
	visibility: hidden;
	opacity: 0;
	pointer-events: none;
	will-change: transform, opacity;
}
#dcs[data-state="closed"] .dcs-banner{
	display: none;
}

#dcs[data-state="open"] .dcs-banner{
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transform: none;
	filter: none;
	clip-path: inset(0 0 0 0 round var(--dcs-card-r));
	transition:
		transform var(--dcs-dur) var(--dcs-ease),
		opacity calc(var(--dcs-dur) * 0.55) var(--dcs-ease),
		clip-path var(--dcs-dur) var(--dcs-ease),
		filter var(--dcs-dur) var(--dcs-ease);
}
#dcs[data-state="open"][data-settled] .dcs-banner{
	clip-path: none;
	will-change: auto;
}

#dcs[data-state="pre"] .dcs-banner{
	visibility: visible;
	transition: none;
}

/* Animación: Rise (subida + escala) */
#dcs[data-anim="rise"][data-state="pre"] .dcs-banner{
	opacity: 0;
	transform: translate3d(0, 56px, 0) scale(0.96);
}
/* Animación: Reveal (cortinilla con clip-path) */
#dcs[data-anim="reveal"][data-state="pre"] .dcs-banner{
	opacity: 1;
	transform: translate3d(0, 24px, 0);
	clip-path: inset(100% 0 0 0 round var(--dcs-card-r));
}
/* Animación: Focus (desenfoque a nitidez) */
#dcs[data-anim="blur"][data-state="pre"] .dcs-banner{
	opacity: 0;
	transform: scale(1.06);
	filter: blur(16px);
}
/* Animación: Fade (sutil) */
#dcs[data-anim="fade"][data-state="pre"] .dcs-banner{
	opacity: 0;
	transform: translate3d(0, 10px, 0);
}

/* Salida */
#dcs[data-state="leave"] .dcs-banner{
	visibility: visible;
	opacity: 0;
	transform: translate3d(0, 20px, 0) scale(0.98);
	transition:
		transform calc(var(--dcs-dur) * 0.45) var(--dcs-ease-in),
		opacity calc(var(--dcs-dur) * 0.4) var(--dcs-ease-in);
}
/* Minimizar: se encoge hacia el lanzador */
#dcs[data-state="leave-min"] .dcs-banner{
	visibility: visible;
	opacity: 0;
	transform: translate3d(var(--dcs-min-x, 0), var(--dcs-min-y, 0), 0) scale(0.12);
	transition:
		transform calc(var(--dcs-dur) * 0.62) var(--dcs-ease-io),
		opacity calc(var(--dcs-dur) * 0.62) cubic-bezier(0.6, 0, 0.9, 0.4);
}

/* Entrada escalonada de los contenidos */
#dcs:not([data-anim="fade"]) .dcs-a,
#dcs:not([data-anim="fade"]) .dcs-wi,
#dcs:not([data-anim="fade"]) .dcs-media-in{
	transition:
		transform var(--dcs-dur) var(--dcs-ease),
		opacity calc(var(--dcs-dur) * 0.8) var(--dcs-ease);
}
#dcs:not([data-anim="fade"])[data-state="pre"] .dcs-a{
	opacity: 0;
	transform: translate3d(0, 18px, 0);
}
#dcs:not([data-anim="fade"])[data-state="open"] .dcs-a{
	transition-delay: calc(var(--dcs-dur) * 0.22 + var(--i, 0) * var(--dcs-stagger));
}
#dcs .dcs-w{
	display: inline-block;
	overflow: hidden;
	vertical-align: top;
	padding-bottom: 0.12em;
	margin-bottom: -0.12em;
}
#dcs .dcs-wi{
	display: inline-block;
}
#dcs:not([data-anim="fade"])[data-state="pre"] .dcs-wi{
	transform: translate3d(0, 110%, 0) rotate(4deg);
}
#dcs:not([data-anim="fade"])[data-state="open"] .dcs-wi{
	transition-delay: calc(var(--dcs-dur) * 0.12 + var(--w, 0) * 45ms);
}
#dcs:not([data-anim="fade"])[data-state="pre"] .dcs-media-in{
	transform: scale(1.18);
}
#dcs:not([data-anim="fade"])[data-state="open"] .dcs-media-in{
	transition-duration: calc(var(--dcs-dur) * 2.2);
}

/* Fondo (plantillas modales) */
#dcs .dcs-backdrop{
	position: fixed;
	inset: 0;
	z-index: var(--dcs-z-backdrop);
	background: color-mix(in srgb, var(--dcs-ink) 38%, transparent);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition:
		opacity calc(var(--dcs-dur) * 0.7) var(--dcs-ease),
		visibility 0s linear calc(var(--dcs-dur) * 0.7);
}
#dcs[data-backdrop="blur"] .dcs-backdrop{
	backdrop-filter: blur(8px) saturate(1.2);
	-webkit-backdrop-filter: blur(8px) saturate(1.2);
}
#dcs:not([data-backdrop="none"])[data-state="open"] .dcs-backdrop{
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: opacity calc(var(--dcs-dur) * 0.7) var(--dcs-ease);
}

/* ------------------------------------------------------------------
 * 4. Piezas comunes
 * ---------------------------------------------------------------- */
#dcs .dcs-body{
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 24px;
	min-height: 0;
	flex: 1 1 auto;
}
#dcs .dcs-head{
	position: relative;
	display: flex;
	flex-direction: column;
	gap: 8px;
	padding-right: 36px;
}
#dcs .dcs-kicker{
	align-self: flex-start;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	color: var(--dcs-accent);
}
#dcs .dcs-title{
	font-family: var(--dcs-font-heading);
	font-size: 19px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: -0.01em;
	color: var(--dcs-ink);
	text-wrap: balance;
}
#dcs .dcs-close{
	position: absolute !important;
	top: -4px;
	right: -6px;
	width: 32px;
	height: 32px;
	padding: 7px !important;
	border-radius: 999px;
	color: var(--dcs-muted) !important;
	transition:
		background-color 0.3s var(--dcs-ease),
		color 0.3s var(--dcs-ease),
		transform 0.5s var(--dcs-spring);
}
#dcs .dcs-close:hover{
	background: var(--dcs-soft);
	color: var(--dcs-ink) !important;
	transform: rotate(90deg);
}

/* Zona flexible y desplazable: si la pantalla es baja, el contenido (texto o categorías)
 * se desplaza dentro y el título y los botones quedan siempre visibles, sin solaparse. */
#dcs .dcs-views{
	position: relative;
	flex: 1 1 auto;
	min-height: 0;
	overflow-y: auto;
	overflow-x: hidden;
	overscroll-behavior: contain;
	scrollbar-width: thin;
	padding: 3px;
	margin: -3px;
}
#dcs .dcs-head,
#dcs .dcs-actions,
#dcs .dcs-links{
	flex: none;
}
#dcs .dcs-views.is-morphing{
	overflow: hidden;
	transition: height calc(var(--dcs-dur) * 0.7) var(--dcs-ease);
}
#dcs .dcs-view{
	transition:
		opacity calc(var(--dcs-dur) * 0.5) var(--dcs-ease),
		transform calc(var(--dcs-dur) * 0.7) var(--dcs-ease);
}
#dcs[data-view="main"] .dcs-view-prefs,
#dcs[data-view="prefs"] .dcs-view-main{
	position: absolute;
	inset: 0;
	overflow: hidden; /* la vista oculta no debe alargar la zona desplazable */
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
}
#dcs[data-view="main"] .dcs-view-prefs{
	transform: translate3d(24px, 0, 0);
}
#dcs[data-view="prefs"] .dcs-view-main{
	transform: translate3d(-24px, 0, 0);
}
#dcs .dcs-msg{
	font-size: 14px;
	line-height: 1.6;
	color: var(--dcs-muted);
}
#dcs .dcs-msg p + p{
	margin-top: 8px;
}
#dcs .dcs-msg a{
	color: var(--dcs-ink);
	text-decoration: underline;
	text-underline-offset: 3px;
	text-decoration-thickness: 1px;
}

/* Preferencias */
#dcs .dcs-view-prefs{
	max-height: none;
}
#dcs .dcs-back{
	display: inline-flex !important;
	align-items: center;
	gap: 6px;
	margin-bottom: 10px;
	font-size: 13px;
	font-weight: 500;
	color: var(--dcs-muted) !important;
	transition: color 0.3s var(--dcs-ease);
}
#dcs .dcs-back svg{
	width: 16px;
	height: 16px;
	transition: transform 0.4s var(--dcs-ease);
}
#dcs .dcs-back:hover{
	color: var(--dcs-ink) !important;
}
#dcs .dcs-back:hover svg{
	transform: translateX(-3px);
}
#dcs .dcs-cats{
	display: flex;
	flex-direction: column;
}
#dcs .dcs-cat{
	border-top: 1px solid var(--dcs-line);
}
#dcs .dcs-cat:last-child{
	border-bottom: 1px solid var(--dcs-line);
}
#dcs .dcs-cat-head{
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 52px;
}
#dcs .dcs-cat-toggle{
	flex: 1 1 auto;
	display: flex !important;
	align-items: center;
	gap: 6px;
	padding: 12px 0 !important;
	font-size: 14px;
	font-weight: 600;
	color: var(--dcs-ink) !important;
}
#dcs .dcs-chevron{
	width: 16px !important;
	height: 16px !important;
	flex: none;
	color: var(--dcs-muted);
	transition: transform 0.5s var(--dcs-ease);
}
#dcs .dcs-cat.is-open .dcs-chevron{
	transform: rotate(180deg);
}
#dcs .dcs-cat-desc{
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.5s var(--dcs-ease);
}
#dcs .dcs-cat-desc > div{
	overflow: hidden;
}
#dcs .dcs-cat-desc p{
	padding: 0 0 14px;
	font-size: 13px;
	line-height: 1.55;
	color: var(--dcs-muted);
}
#dcs .dcs-cat.is-open .dcs-cat-desc{
	grid-template-rows: 1fr;
}
#dcs .dcs-always{
	flex: none;
	font-size: 12px;
	font-weight: 600;
	color: var(--dcs-accent);
}

/* Interruptor */
#dcs .dcs-switch{
	position: relative;
	flex: none;
	display: inline-flex;
	cursor: pointer;
}
#dcs .dcs-switch input{
	position: absolute;
	inset: 0;
	opacity: 0;
	margin: 0;
	cursor: pointer;
	z-index: 1;
}
#dcs .dcs-track{
	position: relative;
	width: 44px;
	height: 26px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--dcs-ink) 16%, var(--dcs-surface));
	transition: background-color 0.4s var(--dcs-ease);
}
#dcs .dcs-thumb{
	position: absolute;
	top: 3px;
	left: 3px;
	width: 20px;
	height: 20px;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 1px 3px rgb(0 0 0 / 0.25);
	transition:
		transform 0.5s var(--dcs-spring),
		width 0.3s var(--dcs-ease);
}
#dcs .dcs-switch input:checked + .dcs-track{
	background: var(--dcs-accent);
}
#dcs .dcs-switch input:checked + .dcs-track .dcs-thumb{
	transform: translateX(18px);
}
#dcs .dcs-switch input:active + .dcs-track .dcs-thumb{
	width: 24px;
}
#dcs .dcs-switch input:checked:active + .dcs-track .dcs-thumb{
	transform: translateX(14px);
}
#dcs .dcs-switch input:focus-visible + .dcs-track{
	outline: 2px solid var(--dcs-accent);
	outline-offset: 3px;
}

/* Botones */
#dcs .dcs-actions{
	position: relative;
}
#dcs .dcs-actions-main,
#dcs .dcs-actions-prefs{
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
#dcs[data-view="main"] .dcs-actions-prefs,
#dcs[data-view="prefs"] .dcs-actions-main{
	display: none;
}
#dcs .dcs-actions-prefs{
	animation: dcs-in 0.6s var(--dcs-ease) both;
}
#dcs[data-view="main"] .dcs-actions-main{
	animation: dcs-in 0.6s var(--dcs-ease) both;
}
#dcs[data-state="pre"] .dcs-actions-main,
#dcs:not([data-settled]) .dcs-actions-main{
	animation: none;
}
@keyframes dcs-in {
	from {
		opacity: 0;
		transform: translate3d(0, 8px, 0);
	}
}

#dcs .dcs-btn{
	position: relative;
	isolation: isolate;
	overflow: hidden;
	flex: 1 1 0;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	padding: 0 18px !important;
	border-radius: var(--dcs-btn-r);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.1;
	text-align: center;
	white-space: nowrap;
	transition:
		transform 0.5s var(--dcs-ease),
		background-color 0.35s var(--dcs-ease),
		color 0.35s var(--dcs-ease),
		box-shadow 0.35s var(--dcs-ease);
}
#dcs .dcs-btn::before{
	content: "";
	position: absolute;
	inset: 0;
	z-index: -1;
	background: currentColor;
	opacity: 0.12;
	transform: translate3d(0, 101%, 0);
	border-radius: inherit;
	transition: transform 0.55s var(--dcs-ease);
}
#dcs .dcs-btn:hover::before{
	transform: none;
}
#dcs .dcs-btn:active{
	transform: scale(0.97);
}
#dcs .dcs-btn-idx,
#dcs .dcs-btn .dcs-arrow{
	display: none;
}
#dcs .dcs-btn-label{
	position: relative;
}

#dcs .dcs-btn-accept{
	background: var(--dcs-accent);
	color: var(--dcs-accent-ink) !important;
}
/* Aceptar y Rechazar SIEMPRE idénticos: mismo color, tamaño, tipografía, posición y hover
 * (AEPD, Guía de cookies 2023; CEPD, Directrices 03/2022 sobre patrones engañosos). */
#dcs .dcs-btn-deny{
	background: var(--dcs-accent);
	color: var(--dcs-accent-ink) !important;
}
#dcs[data-deny="neutral"] .dcs-btn-accept,
#dcs[data-deny="neutral"] .dcs-btn-deny{
	background: var(--dcs-ink);
	color: var(--dcs-surface) !important;
}
/* Segunda capa: Rechazar todo, Guardar y Aceptar todo con el mismo peso */
#dcs .dcs-actions-prefs .dcs-btn{
	background: var(--dcs-soft);
	color: var(--dcs-ink) !important;
	box-shadow: inset 0 0 0 1px var(--dcs-line);
}
#dcs .dcs-btn-prefs,
#dcs .dcs-btn-save{
	background: var(--dcs-soft);
	color: var(--dcs-ink) !important;
	box-shadow: inset 0 0 0 1px var(--dcs-line);
}

#dcs .dcs-links{
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	font-size: 12px;
	color: var(--dcs-muted);
}
#dcs .dcs-links a{
	color: var(--dcs-muted) !important;
	text-decoration: none;
	background: linear-gradient(currentColor, currentColor) 0 100% / 0 1px no-repeat;
	transition:
		background-size 0.5s var(--dcs-ease),
		color 0.3s var(--dcs-ease);
}
#dcs .dcs-links a:hover{
	color: var(--dcs-ink) !important;
	background-size: 100% 1px;
}

/* Media (Inmersiva / Editorial) */
#dcs .dcs-media{
	position: relative;
	flex: none;
	overflow: hidden;
	background: var(--dcs-accent);
	isolation: isolate;
}
#dcs .dcs-media-in{
	position: absolute;
	inset: 0;
}
#dcs .dcs-media-el{
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
#dcs .dcs-grain{
	position: absolute;
	inset: 0;
	opacity: 0.18;
	mix-blend-mode: overlay;
	pointer-events: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
#dcs[data-media="video"] .dcs-grain,
#dcs[data-media="image"] .dcs-grain{
	display: none;
}
/* Fondo generativo cuando no hay vídeo ni imagen */
#dcs .dcs-blob{
	position: absolute;
	inset: -30%;
	background: var(--dcs-accent);
	filter: blur(28px) saturate(1.2);
	animation: dcs-spin 22s linear infinite;
}
#dcs .dcs-blob i{
	position: absolute;
	border-radius: 50%;
	mix-blend-mode: screen;
}
#dcs .dcs-blob i:nth-child(1){
	width: 60%;
	height: 60%;
	left: 8%;
	top: 12%;
	background: color-mix(in srgb, var(--dcs-accent) 40%, #ffffff);
	animation: dcs-drift 9s var(--dcs-ease-io) infinite alternate;
}
#dcs .dcs-blob i:nth-child(2){
	width: 50%;
	height: 50%;
	right: 6%;
	bottom: 10%;
	background: color-mix(in srgb, var(--dcs-accent) 55%, var(--dcs-ink));
	mix-blend-mode: multiply;
	animation: dcs-drift 11s var(--dcs-ease-io) infinite alternate-reverse;
}
#dcs .dcs-blob i:nth-child(3){
	width: 34%;
	height: 34%;
	left: 44%;
	top: 30%;
	background: color-mix(in srgb, var(--dcs-accent) 20%, var(--dcs-surface));
	animation: dcs-drift 7s var(--dcs-ease-io) infinite alternate;
}
@keyframes dcs-spin {
	to {
		transform: rotate(360deg);
	}
}
@keyframes dcs-drift {
	to {
		transform: translate3d(18%, -14%, 0) scale(1.25);
	}
}

/* ------------------------------------------------------------------
 * 5. Lanzador (reabrir preferencias)
 * ---------------------------------------------------------------- */
/* Posición base (configurable por dispositivo) + elevación automática para esquivar
 * barras y botones flotantes de la web (--dcs-l-lift, calculado en JS). */
#dcs .dcs-launcher,
#dcs .dcs-launcher-probe{
	position: fixed !important;
	bottom: calc(var(--dcs-l-y, 20px) + env(safe-area-inset-bottom, 0px));
	left: var(--dcs-l-x, 20px);
}
/* Modo "footer": el lanzador no acompaña al scroll, vive al final de la página.
 * (Si el banner está minimizado sin decidir, vuelve a ser fijo para poder reabrirlo.) */
#dcs[data-launcher-anchor="footer"]:not(.is-pending) .dcs-launcher,
#dcs[data-launcher-anchor="footer"]:not(.is-pending) .dcs-launcher-probe{
	position: absolute !important;
	top: var(--dcs-l-top, auto);
	bottom: auto;
}
#dcs[data-launcher-anchor="footer"]:not(.is-pending) .dcs-launcher{
	z-index: 50;
}
#dcs .dcs-launcher-probe{
	width: 48px;
	height: 48px;
	visibility: hidden;
	pointer-events: none;
	z-index: -1;
}
#dcs .dcs-launcher{
	z-index: var(--dcs-z-launcher);
	translate: 0 calc(-1 * var(--dcs-l-lift, 0px));
	display: inline-flex !important;
	align-items: center;
	gap: 0;
	height: 48px;
	min-width: 48px;
	padding: 0 13px !important;
	border-radius: 999px;
	background: var(--dcs-surface);
	color: var(--dcs-ink) !important;
	box-shadow: 0 1px 2px rgb(0 0 0 / 0.08), 0 10px 30px -8px rgb(0 0 0 / 0.3);
	font-size: 13px;
	font-weight: 600;
	opacity: 0;
	visibility: hidden;
	transform: translate3d(0, 16px, 0) scale(0.5);
	transition:
		transform 0.6s var(--dcs-spring),
		opacity 0.3s var(--dcs-ease),
		visibility 0s linear 0.6s,
		gap 0.5s var(--dcs-ease),
		box-shadow 0.4s var(--dcs-ease),
		translate 0.6s var(--dcs-ease);
}
#dcs[data-launcher-pos="right"] .dcs-launcher,
#dcs[data-launcher-pos="right"] .dcs-launcher-probe{
	left: auto;
	right: var(--dcs-l-x, 20px);
}
/* Pestaña lateral pegada al borde: casi nunca choca con menús o chats */
#dcs[data-launcher-pos="edge-left"] .dcs-launcher,
#dcs[data-launcher-pos="edge-left"] .dcs-launcher-probe{
	left: 0;
}
#dcs[data-launcher-pos="edge-right"] .dcs-launcher,
#dcs[data-launcher-pos="edge-right"] .dcs-launcher-probe{
	left: auto;
	right: 0;
}
#dcs[data-launcher-pos^="edge"] .dcs-launcher{
	height: 44px;
	min-width: 40px;
	padding: 0 11px !important;
}
#dcs[data-launcher-pos="edge-left"] .dcs-launcher{
	border-radius: 0 14px 14px 0;
}
#dcs[data-launcher-pos="edge-right"] .dcs-launcher{
	border-radius: 14px 0 0 14px;
	flex-direction: row-reverse;
}
#dcs[data-launcher-pos^="edge"] .dcs-launcher-ico{
	width: 20px;
	height: 20px;
}
/* Oculto (normalmente en móvil): solo reaparece si el banner se minimizó sin decidir */
#dcs[data-launcher-pos="hidden"]:not(.is-pending) .dcs-launcher{
	display: none !important;
}
#dcs[data-launcher="on"] .dcs-launcher{
	opacity: 1;
	visibility: visible;
	transform: none;
	transition:
		transform 0.7s var(--dcs-spring) 0.15s,
		opacity 0.4s var(--dcs-ease) 0.15s,
		gap 0.5s var(--dcs-ease),
		box-shadow 0.4s var(--dcs-ease);
}
#dcs .dcs-launcher-ico{
	display: block;
	width: 22px;
	height: 22px;
	flex: none;
	transition: transform 0.7s var(--dcs-spring);
}
#dcs .dcs-launcher-label{
	max-width: 0;
	overflow: hidden;
	white-space: nowrap;
	opacity: 0;
	transition:
		max-width 0.6s var(--dcs-ease),
		opacity 0.4s var(--dcs-ease);
}
#dcs .dcs-launcher:hover,
#dcs .dcs-launcher:focus-visible{
	gap: 8px;
	box-shadow: 0 1px 2px rgb(0 0 0 / 0.08), 0 16px 40px -10px rgb(0 0 0 / 0.36);
}
#dcs .dcs-launcher:hover .dcs-launcher-label,
#dcs .dcs-launcher:focus-visible .dcs-launcher-label{
	max-width: 180px;
	opacity: 1;
}
#dcs .dcs-launcher:hover .dcs-launcher-ico{
	transform: rotate(-18deg) scale(1.06);
}
#dcs .dcs-dot{
	position: absolute;
	top: 6px;
	right: 6px;
	width: 9px;
	height: 9px;
	border-radius: 50%;
	background: var(--dcs-accent);
	box-shadow: 0 0 0 2px var(--dcs-surface);
	transform: scale(0);
	transition: transform 0.5s var(--dcs-spring);
}
#dcs.is-pending .dcs-dot{
	transform: scale(1);
}
#dcs.is-pending .dcs-dot::after{
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 50%;
	background: var(--dcs-accent);
	animation: dcs-ping 2s var(--dcs-ease) infinite;
}
@keyframes dcs-ping {
	70%,
	100% {
		transform: scale(2.6);
		opacity: 0;
	}
}

/* ------------------------------------------------------------------
 * 6. Posiciones
 * ---------------------------------------------------------------- */
#dcs[data-position="bottom-left"] .dcs-banner{
	left: var(--dcs-gutter);
	bottom: var(--dcs-gutter);
	transform-origin: 0 100%;
}
#dcs[data-position="bottom-right"] .dcs-banner{
	right: var(--dcs-gutter);
	bottom: var(--dcs-gutter);
	transform-origin: 100% 100%;
}
#dcs[data-position="bottom-center"] .dcs-banner{
	left: 0;
	right: 0;
	bottom: var(--dcs-gutter);
	margin-inline: auto;
	transform-origin: 50% 100%;
}
#dcs[data-position="center"] .dcs-banner{
	inset: 0;
	margin: auto;
	height: fit-content;
	transform-origin: 50% 50%;
}

/* ==================================================================
 * PLANTILLA 1 · CLÁSICA
 * ================================================================== */
#dcs[data-template="classic"] .dcs-banner{
	width: min(440px, calc(100vw - 32px));
	border: 1px solid var(--dcs-line);
}
#dcs[data-template="classic"] .dcs-actions-main .dcs-btn-prefs{
	flex-basis: 100%;
}
#dcs[data-template="classic"] .dcs-actions-prefs{
	flex-direction: column;
}
#dcs[data-template="classic"] .dcs-actions-prefs .dcs-btn{
	flex: none;
	width: 100%;
}
/* Barra inferior */
#dcs[data-template="classic"][data-position="bottom-center"] .dcs-banner{
	width: min(1180px, calc(100vw - 32px));
}
#dcs[data-template="classic"][data-position="bottom-center"][data-view="main"] .dcs-body{
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	grid-template-areas:
		"head actions"
		"views actions"
		"links actions";
	column-gap: 40px;
	row-gap: 8px;
	align-items: center;
	padding: 22px 26px;
}
#dcs[data-template="classic"][data-position="bottom-center"][data-view="main"] .dcs-head{
	grid-area: head;
}
#dcs[data-template="classic"][data-position="bottom-center"][data-view="main"] .dcs-views{
	grid-area: views;
}
#dcs[data-template="classic"][data-position="bottom-center"][data-view="main"] .dcs-actions{
	grid-area: actions;
}
#dcs[data-template="classic"][data-position="bottom-center"][data-view="main"] .dcs-links{
	grid-area: links;
}
#dcs[data-template="classic"][data-position="bottom-center"][data-view="main"] .dcs-actions-main{
	flex-wrap: nowrap;
}
#dcs[data-template="classic"][data-position="bottom-center"][data-view="main"] .dcs-actions-main .dcs-btn{
	flex: 0 0 auto;
	min-width: 118px;
}
/* En la barra la X se ancla a la esquina del banner, no al título */
#dcs[data-template="classic"][data-position="bottom-center"] .dcs-head{
	position: static;
	padding-right: 0;
}
#dcs[data-template="classic"][data-position="bottom-center"] .dcs-close{
	top: 10px;
	right: 10px;
}
#dcs[data-template="classic"][data-position="bottom-center"][data-view="main"] .dcs-body{
	padding-right: 64px;
}
#dcs[data-template="classic"][data-position="bottom-center"][data-view="prefs"] .dcs-body{
	max-width: 680px;
	margin-inline: auto;
	width: 100%;
}

/* ==================================================================
 * PLANTILLA 2 · INMERSIVA (vídeo / imagen / fondo generativo)
 * ================================================================== */
#dcs[data-template="immersive"]{
	--dcs-card-r: min(calc(var(--dcs-radius) * 2.4), 32px);
}
#dcs[data-template="immersive"] .dcs-banner{
	width: min(400px, calc(100vw - 32px));
}
#dcs[data-template="immersive"] .dcs-media{
	aspect-ratio: 16 / 10;
	max-height: 34vh;
	transition: aspect-ratio calc(var(--dcs-dur) * 0.7) var(--dcs-ease), max-height calc(var(--dcs-dur) * 0.7) var(--dcs-ease);
}
#dcs[data-template="immersive"][data-view="prefs"] .dcs-media{
	max-height: 72px;
}
#dcs[data-template="immersive"] .dcs-media::after{
	content: "";
	position: absolute;
	inset: auto 0 0 0;
	height: 45%;
	background: linear-gradient(to bottom, transparent, color-mix(in srgb, var(--dcs-surface) 60%, transparent));
	pointer-events: none;
}
#dcs[data-template="immersive"] .dcs-body{
	padding: 22px 24px 20px;
	gap: 12px;
}
#dcs[data-template="immersive"] .dcs-head{
	padding-right: 0;
}
#dcs[data-template="immersive"] .dcs-kicker{
	padding: 5px 10px;
	border-radius: 999px;
	background: color-mix(in srgb, var(--dcs-accent) 12%, var(--dcs-surface));
}
#dcs[data-template="immersive"] .dcs-title{
	font-size: 26px;
	line-height: 1.08;
	font-weight: 700;
	letter-spacing: -0.025em;
}
#dcs[data-template="immersive"] .dcs-close{
	position: absolute !important;
	top: 14px;
	right: 14px;
	z-index: 3;
	background: color-mix(in srgb, var(--dcs-surface) 72%, transparent);
	backdrop-filter: blur(10px);
	-webkit-backdrop-filter: blur(10px);
	color: var(--dcs-ink) !important;
}
/* La X se ancla al banner para quedar sobre la media */
#dcs[data-template="immersive"] .dcs-head{
	position: static;
}
#dcs[data-template="immersive"] .dcs-actions-main,
#dcs[data-template="immersive"] .dcs-actions-prefs{
	flex-direction: column;
	gap: 8px;
}
#dcs[data-template="immersive"] .dcs-btn{
	flex: none;
	width: 100%;
	min-height: 50px;
	font-size: 15px;
}
#dcs[data-template="immersive"] .dcs-actions-main .dcs-btn-prefs{
	min-height: 36px;
	background: none;
	box-shadow: none;
	font-weight: 500;
	color: var(--dcs-muted) !important;
	text-decoration: underline;
	text-underline-offset: 4px;
}
#dcs[data-template="immersive"] .dcs-actions-main .dcs-btn-prefs::before{
	display: none;
}
#dcs[data-template="immersive"] .dcs-links{
	justify-content: center;
}

/* ==================================================================
 * PLANTILLA 3 · MINIMAL (píldora flotante, cristal)
 * ================================================================== */
#dcs[data-template="minimal"] .dcs-banner{
	width: min(820px, calc(100vw - 32px));
	background: color-mix(in srgb, var(--dcs-surface) 84%, transparent);
	backdrop-filter: blur(18px) saturate(1.6);
	-webkit-backdrop-filter: blur(18px) saturate(1.6);
	box-shadow: 0 0 0 1px var(--dcs-line), 0 20px 50px -18px rgb(0 0 0 / 0.35);
	--dcs-card-r: min(calc(var(--dcs-radius) * 2), 22px);
}
#dcs[data-template="minimal"][data-position="bottom-left"] .dcs-banner,
#dcs[data-template="minimal"][data-position="bottom-right"] .dcs-banner{
	width: min(640px, calc(100vw - 32px));
}
/* Minimal: fila 1 = mensaje completo + X; fila 2 = enlaces legales + botones.
 * El mensaje no se recorta: la información de la primera capa debe verse entera. */
#dcs[data-template="minimal"] .dcs-body{
	flex-direction: row;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px 18px;
	padding: 14px 12px 12px 22px;
}
#dcs[data-template="minimal"] .dcs-head{
	position: static;
	padding: 0;
	order: 2;
	align-self: flex-start;
}
#dcs[data-template="minimal"] .dcs-views{
	order: 1;
}
#dcs[data-template="minimal"] .dcs-links{
	order: 3;
	flex: 1 1 auto;
	gap: 4px 14px;
}
#dcs[data-template="minimal"] .dcs-actions{
	order: 4;
	margin-left: auto;
}
#dcs[data-template="minimal"] .dcs-title,
#dcs[data-template="minimal"] .dcs-kicker{
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0 0 0 0);
	white-space: nowrap;
}
#dcs[data-template="minimal"] .dcs-views{
	flex: 1 1 calc(100% - 60px);
	min-width: 0;
}
#dcs[data-template="minimal"] .dcs-msg{
	font-size: 13px;
	line-height: 1.5;
}
#dcs[data-template="minimal"] .dcs-actions-main{
	flex-wrap: nowrap;
	gap: 6px;
}
#dcs[data-template="minimal"] .dcs-btn{
	flex: none;
	min-height: 38px;
	padding: 0 16px !important;
	font-size: 13px;
}
#dcs[data-template="minimal"] .dcs-actions-main .dcs-btn-prefs{
	background: none;
	box-shadow: none;
	padding: 0 10px !important;
	color: var(--dcs-muted) !important;
}
#dcs[data-template="minimal"] .dcs-close{
	position: relative !important;
	top: 0;
	right: 0;
	flex: none;
	width: 34px;
	height: 34px;
	order: 3;
}
/* Minimal · vista de preferencias: la píldora se despliega en panel */
#dcs[data-template="minimal"][data-view="prefs"] .dcs-body{
	flex-direction: column;
	align-items: stretch;
	padding: 20px;
}
#dcs[data-template="minimal"][data-view="prefs"] .dcs-close{
	position: absolute !important;
	top: 12px;
	right: 12px;
}
#dcs[data-template="minimal"][data-view="prefs"] .dcs-actions-prefs .dcs-btn{
	flex: 1 1 auto;
}
#dcs[data-template="minimal"][data-view="prefs"] .dcs-actions{
	margin-left: 0;
	flex-basis: 100%;
}

/* ==================================================================
 * PLANTILLA 4 · EDITORIAL (modal a pantalla, tipografía grande)
 * ================================================================== */
#dcs[data-template="editorial"] .dcs-banner{
	inset: 0;
	margin: auto;
	height: fit-content;
	width: min(980px, calc(100vw - 48px));
	min-height: min(520px, calc(100vh - 48px));
	flex-direction: row;
	transform-origin: 50% 50%;
	--dcs-card-r: min(calc(var(--dcs-radius) * 1.6), 24px);
}
#dcs[data-template="editorial"] .dcs-media{
	container-type: inline-size;
	flex: 0 0 42%;
	min-height: 100%;
	align-self: stretch;
}
#dcs .dcs-mark{
	position: absolute;
	inset: 0;
	display: flex;
	align-items: flex-end;
	padding: 32px;
	color: var(--dcs-accent-ink);
}
#dcs .dcs-mark-txt{
	font-family: var(--dcs-font-heading);
	font-size: clamp(44px, 6vw, 104px);
	font-size: min(17cqw, 120px);
	font-weight: 700;
	line-height: 0.9;
	letter-spacing: -0.05em;
	overflow-wrap: normal;
	word-break: normal;
	hyphens: none;
}
#dcs[data-template="editorial"] .dcs-body{
	justify-content: space-between;
	gap: 22px;
	padding: 44px 44px 32px;
}
#dcs[data-template="editorial"] .dcs-head{
	gap: 16px;
	padding-right: 40px;
}
#dcs[data-template="editorial"] .dcs-kicker{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--dcs-muted);
}
#dcs[data-template="editorial"] .dcs-kicker::before{
	content: "";
	width: 28px;
	height: 1px;
	background: currentColor;
}
#dcs[data-template="editorial"] .dcs-title{
	font-size: clamp(30px, 3.4vw, 46px);
	line-height: 1.02;
	font-weight: 600;
	letter-spacing: -0.035em;
}
#dcs[data-template="editorial"] .dcs-close{
	top: -12px;
	right: -14px;
	width: 40px;
	height: 40px;
	padding: 10px !important;
	box-shadow: inset 0 0 0 1px var(--dcs-line);
}
#dcs[data-template="editorial"] .dcs-msg{
	font-size: 15px;
	max-width: 46ch;
}
#dcs[data-template="editorial"] .dcs-views{
	flex: 1 1 auto;
}
#dcs[data-template="editorial"] .dcs-actions-main,
#dcs[data-template="editorial"] .dcs-actions-prefs{
	flex-direction: column;
	gap: 0;
	counter-reset: none;
}
#dcs[data-template="editorial"] .dcs-btn{
	flex: none;
	justify-content: flex-start;
	gap: 16px;
	min-height: 60px;
	padding: 0 4px !important;
	border-radius: 0;
	background: transparent !important;
	color: var(--dcs-ink) !important;
	box-shadow: none !important;
	border-top: 1px solid var(--dcs-line);
	font-size: 17px;
	font-weight: 500;
	letter-spacing: -0.01em;
	transition:
		padding 0.6s var(--dcs-ease),
		color 0.45s var(--dcs-ease);
}
#dcs[data-template="editorial"] .dcs-btn:last-child{
	border-bottom: 1px solid var(--dcs-line);
}
#dcs[data-template="editorial"] .dcs-btn::before{
	opacity: 1;
	background: var(--dcs-accent);
	border-radius: 0;
	transform: scaleY(0);
	transform-origin: 50% 100%;
	transition: transform 0.6s var(--dcs-ease);
}
#dcs[data-template="editorial"] .dcs-btn:hover{
	padding: 0 20px !important;
	color: var(--dcs-accent-ink) !important;
}
#dcs[data-template="editorial"] .dcs-btn:hover::before{
	transform: scaleY(1);
}
#dcs[data-template="editorial"] .dcs-btn-idx{
	display: inline-block;
	width: 22px;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.06em;
	opacity: 0.5;
	font-variant-numeric: tabular-nums;
}
#dcs[data-template="editorial"] .dcs-btn .dcs-arrow{
	display: block;
	width: 22px;
	height: 22px;
	margin-left: auto;
	transition: transform 0.6s var(--dcs-ease);
}
#dcs[data-template="editorial"] .dcs-btn:hover .dcs-arrow{
	transform: translateX(4px);
}
#dcs[data-template="editorial"] .dcs-btn:active{
	transform: none;
}
#dcs[data-template="editorial"] .dcs-view-prefs{
	max-height: none;
}
/* En preferencias el título de la Editorial se reduce para dejar sitio a las categorías */
#dcs[data-template="editorial"] .dcs-title{
	transition: font-size calc(var(--dcs-dur) * 0.6) var(--dcs-ease);
}
#dcs[data-template="editorial"][data-view="prefs"] .dcs-title{
	font-size: clamp(22px, 2.2vw, 30px);
}

/* Pantallas bajas (portátiles de 13", navegador con barras): todo más compacto */
@media (max-height: 820px){
	#dcs[data-template="editorial"] .dcs-banner{
		min-height: 0;
	}
	#dcs[data-template="editorial"] .dcs-body{
		padding: 32px 36px 24px;
		gap: 16px;
	}
	#dcs[data-template="editorial"] .dcs-title{
		font-size: clamp(26px, min(3vw, 5vh), 40px);
	}
	#dcs[data-template="editorial"] .dcs-btn{
		min-height: 50px;
	}
	#dcs[data-template="editorial"] .dcs-cat-head{
		min-height: 44px;
	}
	#dcs[data-template="immersive"] .dcs-media{
		max-height: 24vh;
	}
}
@media (max-height: 620px){
	#dcs .dcs-body{
		padding: 18px 20px;
		gap: 10px;
	}
	#dcs[data-template="editorial"] .dcs-media{
		display: none;
	}
	#dcs[data-template="immersive"] .dcs-media{
		max-height: 72px;
	}
	#dcs .dcs-btn{
		min-height: 40px;
	}
}

/* ------------------------------------------------------------------
 * 7. Móvil: todas las plantillas pasan a hoja inferior
 * ---------------------------------------------------------------- */
@media (max-width: 760px) {
	#dcs[data-template="editorial"] .dcs-banner{
		flex-direction: column;
		min-height: 0;
	}
	#dcs[data-template="editorial"] .dcs-media{
		flex: 0 0 auto;
		height: 140px;
		min-height: 0;
	}
	#dcs[data-template="editorial"] .dcs-body{
		padding: 26px 22px 20px;
	}
	#dcs .dcs-mark{
		padding: 20px 22px;
	}
	#dcs .dcs-mark-txt{
		font-size: 64px;
	}
	#dcs[data-template="minimal"] .dcs-body{
		flex-wrap: wrap;
		padding: 16px;
		gap: 12px;
	}
	#dcs[data-template="minimal"] .dcs-views{
		flex-basis: calc(100% - 48px);
	}
	#dcs[data-template="minimal"] .dcs-head{
		order: 2;
	}
	#dcs[data-template="minimal"] .dcs-actions{
		order: 3;
	}
	#dcs[data-template="minimal"] .dcs-actions-main{
		flex-wrap: wrap;
	}
	#dcs[data-template="minimal"] .dcs-actions-main .dcs-btn-prefs{
		flex: 1 1 100% !important;
		min-height: 30px;
	}
	#dcs[data-template="minimal"] .dcs-actions{
		flex-basis: 100%;
		margin-left: 0;
	}
	#dcs[data-template="minimal"] .dcs-links{
		order: 5;
		flex-basis: 100%;
		justify-content: center;
	}
	#dcs[data-template="minimal"] .dcs-actions-main .dcs-btn{
		flex: 1 1 0;
	}
	#dcs[data-template="classic"][data-position="bottom-center"][data-view="main"] .dcs-body{
		display: flex;
	}
	#dcs[data-template="classic"][data-position="bottom-center"][data-view="main"] .dcs-actions-main{
		flex-wrap: wrap;
	}
}
@media (max-width: 560px) {
	#dcs{
		--dcs-gutter: 10px;
	}
	#dcs .dcs-banner,
	#dcs[data-template] .dcs-banner{
		left: var(--dcs-gutter) !important;
		right: var(--dcs-gutter) !important;
		bottom: calc(var(--dcs-gutter) + env(safe-area-inset-bottom, 0px)) !important;
		top: auto !important;
		width: auto !important;
		margin: 0 !important;
		max-height: calc(100dvh - 20px);
		transform-origin: 50% 100%;
	}
	#dcs .dcs-body{
		padding: 20px;
		overflow-y: auto;
	}
	#dcs .dcs-actions-main,
	#dcs .dcs-actions-prefs{
		flex-direction: column;
	}
	#dcs .dcs-btn{
		flex: none;
		width: 100%;
	}
	#dcs[data-template="immersive"] .dcs-media{
		aspect-ratio: auto;
		height: 120px;
	}
	#dcs[data-template="editorial"] .dcs-media{
		height: 112px;
	}
	#dcs[data-template="immersive"] .dcs-title{
		font-size: 22px;
	}
	#dcs[data-template="minimal"] .dcs-actions-main{
		flex-direction: row;
	}
}

/* ------------------------------------------------------------------
 * 8. Movimiento reducido
 * ---------------------------------------------------------------- */
@media (prefers-reduced-motion: reduce) {
	#dcs *,
	#dcs .dcs-banner{
		transition-duration: 0.01ms !important;
		animation: none !important;
	}
	#dcs[data-state] .dcs-banner,
	#dcs[data-state] .dcs-wi,
	#dcs[data-state] .dcs-a,
	#dcs[data-state] .dcs-media-in{
		transform: none !important;
		filter: none !important;
		clip-path: none !important;
	}
}
