/* SB Cookies. Los colores y medidas salen de las variables --sbck-* que pinta el plugin según los ajustes. */

:root {
	--sbck-fondo: #fff;
	--sbck-texto: #222;
	--sbck-titulo: #222;
	--sbck-enlaces: #1e73be;
	--sbck-principal-fondo: #1e73be;
	--sbck-principal-texto: #fff;
	--sbck-secundario-fondo: #f9f9f9;
	--sbck-secundario-texto: #222;
	--sbck-secundario-borde: #f2f2f2;
	--sbck-interruptor: #1e73be;
	--sbck-categoria-fondo: #f9f9f9;
	--sbck-pestana-fondo: #fff;
	--sbck-pestana-texto: #222;
	--sbck-radio: 12px;
	--sbck-radio-botones: 5px;
	--sbck-ancho: 526px;
	--sbck-letra: 13px;
	--sbck-fuente: inherit;
	--sbck-sombra: 0 0 12px rgba(0, 0, 0, .18);
	--sbck-logo-alto: 32px;
}

.sbck-banner[hidden], .sbck-pestana[hidden], .sbck-fondo[hidden], .sbck-banner [hidden], .sbck-panel [hidden] { display: none !important; }

.sbck-banner, .sbck-banner *, .sbck-pestana, .sbck-panel, .sbck-panel *, .sbck-marcador, .sbck-marcador * { box-sizing: border-box; }

.sbck-banner {
	position: fixed;
	z-index: 99999;
	display: grid;
	grid-template-columns: 1fr;
	gap: 10px;
	width: calc(100% - 20px);
	max-width: var(--sbck-ancho);
	max-height: calc(100vh - 20px);
	overflow-y: auto;
	padding: 18px 20px;
	background: var(--sbck-fondo);
	color: var(--sbck-texto);
	border-radius: var(--sbck-radio);
	box-shadow: var(--sbck-sombra);
	font-family: var(--sbck-fuente);
	font-size: var(--sbck-letra);
	line-height: 1.5;
	text-align: left;
	-webkit-font-smoothing: antialiased;
}
.sbck-banner.sbck-visible { animation: sbck-entrar .25s ease-out; }
@keyframes sbck-entrar { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .sbck-banner.sbck-visible { animation: none; } }

/* Posiciones */
.sbck-pos-esquina-derecha { right: 10px; bottom: 10px; }
.sbck-pos-esquina-izquierda { left: 10px; bottom: 10px; }
.sbck-pos-barra-inferior, .sbck-pos-barra-superior { left: 0; right: 0; width: 100%; max-width: none; border-radius: 0; padding: 16px max(20px, calc((100% - 1200px) / 2)); }
.sbck-pos-barra-inferior { bottom: 0; }
.sbck-pos-barra-superior { top: 0; }
.sbck-pos-centro { left: 50%; top: 50%; transform: translate(-50%, -50%); }
.sbck-pos-centro.sbck-visible { animation: none; }

@media (min-width: 900px) {
	.sbck-pos-barra-inferior, .sbck-pos-barra-superior { grid-template-columns: 1fr auto; column-gap: 32px; align-items: center; }
	.sbck-pos-barra-inferior .sbck-cabecera, .sbck-pos-barra-superior .sbck-cabecera,
	.sbck-pos-barra-inferior .sbck-cuerpo, .sbck-pos-barra-superior .sbck-cuerpo,
	.sbck-pos-barra-inferior .sbck-documentos, .sbck-pos-barra-superior .sbck-documentos { grid-column: 1; }
	.sbck-pos-barra-inferior .sbck-botones, .sbck-pos-barra-superior .sbck-botones { grid-column: 2; grid-row: 1 / span 3; flex-direction: column; min-width: 220px; }
	.sbck-pos-barra-inferior.sbck-con-preferencias, .sbck-pos-barra-superior.sbck-con-preferencias { grid-template-columns: 1fr; }
	.sbck-pos-barra-inferior.sbck-con-preferencias .sbck-botones, .sbck-pos-barra-superior.sbck-con-preferencias .sbck-botones { grid-column: 1; grid-row: auto; flex-direction: row; }
}

.sbck-fondo { position: fixed; inset: 0; z-index: 99998; background: rgba(0, 0, 0, .45); }
html.sbck-muro-activo { overflow: hidden; }

/* Cabecera */
.sbck-cabecera { display: flex; align-items: center; gap: 10px; }
.sbck-logo { height: var(--sbck-logo-alto); width: auto; max-width: 160px; object-fit: contain; }
.sbck-titulo { flex: 1; font-weight: 600; font-size: 1.15em; color: var(--sbck-titulo); text-align: center; }
.sbck-logo + .sbck-titulo { text-align: left; }
.sbck-cerrar {
	display: inline-flex; align-items: center; justify-content: center;
	width: 30px; height: 30px; padding: 0; margin: -4px -6px -4px 0;
	background: transparent !important; border: 0 !important; border-radius: 50%; box-shadow: none !important;
	color: var(--sbck-texto) !important; cursor: pointer; opacity: .75;
}
.sbck-cerrar:hover, .sbck-cerrar:focus-visible { opacity: 1; background: rgba(0, 0, 0, .06) !important; }

.sbck-mensaje { margin: 0; }
.sbck-mensaje a, .sbck-documentos a, .sbck-categoria-desc a { color: var(--sbck-enlaces); text-decoration: underline; }

/* Categorías */
.sbck-categorias { display: grid; gap: 8px; margin-top: 12px; }
.sbck-categoria { background: var(--sbck-categoria-fondo); border-radius: calc(var(--sbck-radio-botones) + 1px); margin: 0; padding: 0; border: 0; }
.sbck-categoria > summary {
	display: flex; align-items: center; gap: 10px;
	padding: 10px 12px; cursor: pointer; list-style: none; font-weight: 600;
}
.sbck-categoria > summary::-webkit-details-marker { display: none; }
.sbck-categoria > summary::marker { content: ''; }
.sbck-categoria-titulo { flex: 1; }
.sbck-siempre { color: #1d8a3a; font-weight: 500; font-size: .92em; }
.sbck-flecha { width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); margin: -4px 4px 0 2px; transition: transform .2s; }
.sbck-categoria[open] .sbck-flecha { transform: rotate(-135deg); margin-top: 4px; }
.sbck-categoria-desc { padding: 0 12px 12px; font-size: .95em; }
.sbck-categoria-servicios { display: block; margin-top: 6px; opacity: .75; font-size: .92em; }

/* Interruptor */
.sbck-interruptor { position: relative; display: inline-block; width: 36px; height: 20px; flex: none; }
.sbck-interruptor input { position: absolute; opacity: 0; width: 100%; height: 100%; margin: 0; cursor: pointer; z-index: 1; }
.sbck-interruptor label { position: absolute; inset: 0; background: #c4c4c4; border-radius: 20px; transition: background .2s; cursor: pointer; margin: 0; padding: 0; }
.sbck-interruptor label::after { content: ''; position: absolute; top: 3px; left: 3px; width: 14px; height: 14px; border-radius: 50%; background: #fff; transition: transform .2s; }
.sbck-interruptor input:checked + label { background: var(--sbck-interruptor); }
.sbck-interruptor input:checked + label::after { transform: translateX(16px); }
.sbck-interruptor input:focus-visible + label { outline: 2px solid var(--sbck-interruptor); outline-offset: 2px; }
.sbck-lector { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

/* Botones */
.sbck-botones { display: flex; gap: 10px; flex-wrap: wrap; }
.sbck-boton {
	flex: 1 1 0; min-width: 110px; min-height: 42px; margin: 0;
	padding: 10px 12px; font: inherit; font-weight: 500; line-height: 1.2; text-align: center; text-transform: none; letter-spacing: normal;
	border-radius: var(--sbck-radio-botones); cursor: pointer;
	background: var(--sbck-secundario-fondo); color: var(--sbck-secundario-texto); border: 1px solid var(--sbck-secundario-borde);
	box-shadow: none; transition: filter .15s;
}
.sbck-boton:hover { filter: brightness(.95); }
.sbck-boton:focus-visible { outline: 2px solid var(--sbck-enlaces); outline-offset: 2px; }
.sbck-boton.sbck-aceptar, .sbck-denegar-igual .sbck-boton.sbck-denegar {
	background: var(--sbck-principal-fondo); color: var(--sbck-principal-texto); border-color: var(--sbck-principal-fondo);
}

.sbck-documentos { display: flex; flex-wrap: wrap; justify-content: center; gap: 4px 14px; font-size: .92em; }

/* Pestaña «Gestionar consentimiento» */
.sbck-pestana {
	position: fixed; bottom: 0; z-index: 99990;
	padding: 8px 14px; margin: 0;
	background: var(--sbck-pestana-fondo); color: var(--sbck-pestana-texto);
	border: 0; border-radius: var(--sbck-radio-botones) var(--sbck-radio-botones) 0 0;
	box-shadow: 0 0 8px rgba(0, 0, 0, .18);
	font-family: var(--sbck-fuente); font-size: 12px; line-height: 1.2; cursor: pointer;
}
.sbck-pestana-derecha { right: 40px; }
.sbck-pestana-izquierda { left: 40px; }
.sbck-pestana:hover, .sbck-pestana:focus-visible { padding-bottom: 12px; }

/* Panel de preferencias de la política */
.sbck-panel { max-width: 680px; margin: 1.5em 0; padding: 16px; border: 1px solid rgba(0, 0, 0, .1); border-radius: var(--sbck-radio); font-size: .95em; }
.sbck-panel .sbck-categorias { margin-top: 0; }
.sbck-panel .sbck-botones { margin-top: 12px; }
.sbck-panel-estado { margin: 12px 0 0; font-size: .92em; opacity: .85; }
.sbck-panel-estado:empty { display: none; }

/* Marcador de contenido bloqueado */
.sbck-marcador {
	position: relative; width: 100%; min-height: 220px;
	display: flex; align-items: center; justify-content: center;
	background: #eceff1 linear-gradient(135deg, rgba(255,255,255,.35) 25%, transparent 25%, transparent 50%, rgba(255,255,255,.35) 50%, rgba(255,255,255,.35) 75%, transparent 75%) 0 0 / 24px 24px;
	border-radius: 6px; margin: 0;
}
.sbck-marcador-caja { max-width: 420px; margin: 16px; padding: 16px 18px; background: var(--sbck-fondo); color: var(--sbck-texto); border-radius: var(--sbck-radio); box-shadow: var(--sbck-sombra); font-family: var(--sbck-fuente); font-size: var(--sbck-letra); text-align: center; }
.sbck-marcador-caja p { margin: 0 0 10px; }
.sbck-marcador-caja .sbck-boton { width: 100%; flex: none; }
/* Dentro de carruseles y constructores (Revolution Slider, Elementor…) que reescalan el texto de sus capas. */
.sbck-marcador-caja, .sbck-marcador-caja p, .sbck-marcador-caja .sbck-boton { font-size: var(--sbck-letra) !important; line-height: 1.45 !important; white-space: normal !important; }
.sbck-marcador-caja .sbck-boton { padding: 10px 12px !important; min-height: 42px; }

/* Tabla de la política */
.sbck-tabla-envoltura { width: 100%; overflow-x: auto; margin: 0 0 1.5em; }
.sbck-tabla { width: 100%; border-collapse: collapse; font-size: .92em; }
.sbck-tabla th, .sbck-tabla td { padding: 8px 10px; border: 1px solid rgba(0, 0, 0, .12); vertical-align: top; text-align: left; }
.sbck-tabla th { background: rgba(0, 0, 0, .04); }
.sbck-tabla code { font-size: .95em; word-break: break-all; }
.sbck-tabla-nota { opacity: .75; font-size: .92em; }
@media (max-width: 640px) {
	.sbck-tabla thead { display: none; }
	.sbck-tabla, .sbck-tabla tbody, .sbck-tabla tr, .sbck-tabla td { display: block; width: 100%; }
	.sbck-tabla tr { border: 1px solid rgba(0, 0, 0, .12); margin-bottom: 10px; }
	.sbck-tabla td { border: 0; border-bottom: 1px solid rgba(0, 0, 0, .06); }
	.sbck-tabla td::before { content: attr(data-th); display: block; font-weight: 600; font-size: .85em; opacity: .7; }
}

/* Barra propia de enlaces legales */
.sbck-barra-pie { padding: 12px 20px; text-align: center; font-size: 13px; }
.sbck-barra-pie a { color: inherit; }

@media (max-width: 480px) {
	.sbck-banner { padding: 14px 14px; }
	.sbck-pos-esquina-derecha, .sbck-pos-esquina-izquierda { left: 10px; right: 10px; width: auto; }
	.sbck-boton { flex-basis: 100%; }
	.sbck-pestana-derecha { right: 12px; }
	.sbck-pestana-izquierda { left: 12px; }
}

@media print { .sbck-banner, .sbck-pestana, .sbck-fondo { display: none !important; } }
