/*! Anvexo Cookies */
html.anvc-lock, html.anvc-lock body { overflow: hidden !important; }

#anvc-root {
	--anvc-bg: #fff; --anvc-bg-solid: #fff; --anvc-text: #374151; --anvc-heading: #111827; --anvc-link: #2563eb;
	--anvc-b1-bg: #111827; --anvc-b1-tx: #fff; --anvc-b2-bg: #fff; --anvc-b2-tx: #111827; --anvc-btn-border: #d1d5db; --anvc-btn-bw: 1px;
	--anvc-bc: #e5e7eb; --anvc-bw: 1px; --anvc-radius: 16px; --anvc-btn-radius: 10px; --anvc-toggle: #16a34a;
	--anvc-overlay: rgba(15,23,42,.45); --anvc-shadow: 0 8px 30px rgba(15,23,42,.1); --anvc-font: inherit; --anvc-fs: 15px;
	--anvc-boxw: 440px; --anvc-maxw: 1180px;
	--anvc-muted: color-mix(in srgb, var(--anvc-text) 14%, transparent);
	--anvc-gap: 16px;
	position: relative; z-index: 2147483600;
	font-family: var(--anvc-font); font-size: var(--anvc-fs); line-height: 1.55; color: var(--anvc-text);
	-webkit-font-smoothing: antialiased; text-align: left;
}
#anvc-root, #anvc-root *, #anvc-root *::before, #anvc-root *::after {
	box-sizing: border-box; margin: 0; padding: 0; border: 0; float: none;
	letter-spacing: normal; text-transform: none; text-shadow: none; text-indent: 0; word-spacing: normal;
	font-family: inherit; font-size: inherit; line-height: inherit; font-style: normal; min-width: 0; max-width: none;
	background-image: none;
}
#anvc-root [hidden] { display: none !important; }
#anvc-root svg { width: 1em; height: 1em; display: inline-block; vertical-align: middle; fill: none; }

/* ---------- capas ---------- */
#anvc-root .anvc-overlay { position: fixed; inset: 0; background: var(--anvc-overlay); z-index: 1; animation: anvc-fade .3s ease both; }
#anvc-root.anvc-blur .anvc-overlay { -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }

#anvc-root .anvc-banner {
	position: fixed; z-index: 2; display: flex; gap: var(--anvc-gap);
	background: var(--anvc-bg); color: var(--anvc-text);
	border: var(--anvc-bw) solid var(--anvc-bc); border-radius: var(--anvc-radius); box-shadow: var(--anvc-shadow);
	padding: 22px 24px; max-height: calc(100% - 24px); overflow: auto; outline: none;
}
#anvc-root.anvc-translucent .anvc-banner, #anvc-root.anvc-translucent .anvc-prefs, #anvc-root.anvc-translucent .anvc-float {
	-webkit-backdrop-filter: blur(16px) saturate(1.5); backdrop-filter: blur(16px) saturate(1.5);
}

#anvc-root .anvc-main { display: flex; gap: 14px; align-items: flex-start; flex: 1 1 auto; }
#anvc-root .anvc-icon { flex: none; width: 42px; height: 42px; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: 24px; color: var(--anvc-b1-bg); background: color-mix(in srgb, var(--anvc-b1-bg) 12%, transparent); }
#anvc-root .anvc-body { flex: 1 1 auto; }
#anvc-root .anvc-title { font-size: 1.12em; line-height: 1.3; font-weight: 700; color: var(--anvc-heading); margin: 0 0 6px; }
#anvc-root .anvc-text { font-size: .94em; }
#anvc-root .anvc-text p + p { margin-top: .6em; }
#anvc-root a, #anvc-root .anvc-link { color: var(--anvc-link); text-decoration: underline; text-underline-offset: 2px; font-weight: 600; }
#anvc-root a:hover { text-decoration-thickness: 2px; }

/* ---------- botones ---------- */
#anvc-root .anvc-actions { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
#anvc-root .anvc-pair { display: flex; gap: 10px; flex: 1 1 auto; }
#anvc-root .anvc-btn {
	appearance: none; -webkit-appearance: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center;
	min-height: 44px; padding: 10px 20px; font-size: .94em; font-weight: 600; line-height: 1.2; text-align: center; white-space: nowrap;
	border-radius: var(--anvc-btn-radius); border: var(--anvc-btn-bw) solid transparent; text-decoration: none;
	transition: filter .15s ease, background-color .15s ease, transform .1s ease; flex: 1 1 0;
}
#anvc-root .anvc-btn:hover { filter: brightness(.93); }
#anvc-root .anvc-btn:active { transform: translateY(1px); }
#anvc-root .anvc-btn:focus-visible, #anvc-root .anvc-x:focus-visible, #anvc-root .anvc-more:focus-visible, #anvc-root .anvc-float:focus-visible, #anvc-root a:focus-visible, #anvc-root .anvc-banner:focus-visible, #anvc-root .anvc-prefs:focus-visible {
	outline: 3px solid var(--anvc-link); outline-offset: 2px;
}
#anvc-root .anvc-btn-primary { background: var(--anvc-b1-bg); color: var(--anvc-b1-tx); border-color: var(--anvc-b1-bg); }
#anvc-root .anvc-btn-secondary { background: var(--anvc-b2-bg); color: var(--anvc-b2-tx); border-color: var(--anvc-btn-border); }
#anvc-root .anvc-btn-link { background: transparent; color: var(--anvc-link); border-color: transparent; text-decoration: underline; text-underline-offset: 3px; flex: 0 0 auto; padding-left: 6px; padding-right: 6px; }
#anvc-root.anvc-bs-outline .anvc-btn-primary { background: transparent; color: var(--anvc-b1-bg); border-color: var(--anvc-b1-bg); border-width: max(var(--anvc-btn-bw), 2px); }
#anvc-root.anvc-bs-outline .anvc-btn-primary:hover { background: color-mix(in srgb, var(--anvc-b1-bg) 10%, transparent); filter: none; }
#anvc-root.anvc-bs-soft .anvc-btn-primary { background: color-mix(in srgb, var(--anvc-b1-bg) 14%, var(--anvc-bg-solid)); color: var(--anvc-b1-bg); border-color: transparent; }
#anvc-root.anvc-bs-soft .anvc-btn-secondary { border-color: transparent; }

#anvc-root .anvc-x {
	position: absolute; top: 10px; right: 10px; width: 34px; height: 34px; border-radius: 50%; display: flex; align-items: center; justify-content: center;
	background: transparent; color: var(--anvc-text); cursor: pointer; font-size: 18px; opacity: .7; transition: opacity .15s, background-color .15s;
}
#anvc-root .anvc-x:hover { opacity: 1; background: var(--anvc-muted); }
#anvc-root .anvc-banner > .anvc-x ~ .anvc-main .anvc-body { padding-right: 26px; }

/* ---------- diseño: barra ---------- */
#anvc-root.anvc-l-bar .anvc-banner {
	left: 0; right: 0; bottom: 0; border-radius: 0; border-width: var(--anvc-bw) 0 0; align-items: center;
	padding: 18px max(24px, calc((100% - var(--anvc-maxw)) / 2)); gap: 28px;
}
#anvc-root.anvc-l-bar.anvc-p-top .anvc-banner { top: 0; bottom: auto; border-width: 0 0 var(--anvc-bw); }
#anvc-root.anvc-l-bar .anvc-banner, #anvc-root.anvc-l-cloud .anvc-banner { flex-wrap: wrap; row-gap: 16px; }
#anvc-root.anvc-l-bar .anvc-main, #anvc-root.anvc-l-cloud .anvc-main { align-items: center; flex: 1 1 420px; }
#anvc-root.anvc-l-bar .anvc-actions, #anvc-root.anvc-l-cloud .anvc-actions { flex: 0 1 auto; flex-wrap: nowrap; margin-left: auto; }
#anvc-root.anvc-l-bar .anvc-actions > .anvc-btn, #anvc-root.anvc-l-cloud .anvc-actions > .anvc-btn { flex: 0 0 auto; }
#anvc-root.anvc-l-bar .anvc-banner > .anvc-x { right: 8px; }
#anvc-root.anvc-l-bar .anvc-banner > .anvc-x ~ .anvc-actions { margin-right: 26px; }

/* ---------- diseño: caja ---------- */
#anvc-root.anvc-l-box .anvc-banner { bottom: 20px; width: var(--anvc-boxw); max-width: calc(100% - 40px); flex-direction: column; }
#anvc-root.anvc-l-box.anvc-p-bottom-left .anvc-banner { left: 20px; }
#anvc-root.anvc-l-box.anvc-p-bottom-right .anvc-banner { right: 20px; }
#anvc-root.anvc-l-box.anvc-p-bottom-center .anvc-banner { left: 50%; transform: translateX(-50%); }
#anvc-root.anvc-l-box .anvc-actions, #anvc-root.anvc-l-drawer .anvc-actions { flex-direction: column-reverse; align-items: stretch; }
#anvc-root.anvc-l-box .anvc-btn-link, #anvc-root.anvc-l-drawer .anvc-btn-link { align-self: center; }

/* ---------- diseño: nube (flotante ancho) ---------- */
#anvc-root.anvc-l-cloud .anvc-banner { bottom: 20px; left: 50%; transform: translateX(-50%); width: min(var(--anvc-maxw), calc(100% - 40px)); align-items: center; column-gap: 28px; padding: 20px 26px; }
#anvc-root.anvc-l-cloud.anvc-p-top .anvc-banner { top: 20px; bottom: auto; }
#anvc-root.anvc-l-cloud .anvc-banner > .anvc-x ~ .anvc-actions { margin-right: 26px; }

/* ---------- diseño: modal ---------- */
#anvc-root.anvc-l-modal .anvc-banner {
	top: 50%; left: 50%; transform: translate(-50%, -50%); width: min(580px, calc(100% - 32px));
	flex-direction: column; text-align: center; padding: 32px 30px 26px; gap: 22px;
}
#anvc-root.anvc-l-modal .anvc-main { flex-direction: column; align-items: center; }
#anvc-root.anvc-l-modal .anvc-icon { width: 56px; height: 56px; font-size: 30px; }
#anvc-root.anvc-l-modal .anvc-body { padding-right: 0 !important; }
#anvc-root.anvc-l-modal .anvc-title { font-size: 1.3em; }
#anvc-root.anvc-l-modal .anvc-actions { flex-direction: column-reverse; align-items: stretch; }
#anvc-root.anvc-l-modal .anvc-btn-link { align-self: center; }

/* ---------- diseño: panel lateral ---------- */
#anvc-root.anvc-l-drawer .anvc-banner {
	top: 0; bottom: 0; width: min(400px, 100%); max-height: none; flex-direction: column; justify-content: center; padding: 34px 28px; gap: 24px;
}
#anvc-root.anvc-l-drawer.anvc-p-left .anvc-banner { left: 0; border-radius: 0 var(--anvc-radius) var(--anvc-radius) 0; border-left-width: 0; }
#anvc-root.anvc-l-drawer.anvc-p-right .anvc-banner { right: 0; border-radius: var(--anvc-radius) 0 0 var(--anvc-radius); border-right-width: 0; }
#anvc-root.anvc-l-drawer .anvc-main { flex-direction: column; }
#anvc-root.anvc-l-drawer .anvc-title { font-size: 1.3em; }

/* ---------- centro de preferencias ---------- */
#anvc-root .anvc-prefs-wrap { position: fixed; inset: 0; z-index: 5; display: flex; align-items: center; justify-content: center; padding: 16px; }
#anvc-root .anvc-prefs {
	position: relative; z-index: 2; display: flex; flex-direction: column; width: min(660px, 100%); max-height: min(90%, 820px);
	background: var(--anvc-bg); color: var(--anvc-text); border: var(--anvc-bw) solid var(--anvc-bc); border-radius: var(--anvc-radius);
	box-shadow: var(--anvc-shadow); overflow: hidden; outline: none;
}
#anvc-root.anvc-pl-drawer .anvc-prefs-wrap { justify-content: flex-end; padding: 0; }
#anvc-root.anvc-pl-drawer .anvc-prefs { height: 100%; max-height: none; width: min(480px, 100%); border-radius: var(--anvc-radius) 0 0 var(--anvc-radius); border-right-width: 0; }
#anvc-root .anvc-prefs-head { position: relative; padding: 22px 60px 14px 24px; border-bottom: 1px solid var(--anvc-muted); }
#anvc-root .anvc-prefs-head .anvc-title { margin: 0; font-size: 1.2em; }
#anvc-root .anvc-prefs-head .anvc-x { top: 50%; margin-top: -17px; right: 14px; }
#anvc-root .anvc-prefs-body { padding: 16px 24px 8px; overflow-y: auto; overscroll-behavior: contain; flex: 1 1 auto; }
#anvc-root .anvc-prefs-body > .anvc-text { margin-bottom: 14px; }
#anvc-root .anvc-notice { font-size: .88em; padding: 10px 12px; border-radius: 10px; background: var(--anvc-muted); margin-bottom: 12px; }
#anvc-root .anvc-prefs-foot { display: flex; gap: 10px; flex-wrap: wrap; padding: 14px 24px 18px; border-top: 1px solid var(--anvc-muted); }
#anvc-root .anvc-prefs-foot .anvc-btn-save { flex: 1 1 auto; }

#anvc-root .anvc-cat { padding: 14px 0; border-top: 1px solid var(--anvc-muted); }
#anvc-root .anvc-cat:first-of-type { border-top: 0; }
#anvc-root .anvc-cat-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
#anvc-root .anvc-cat-title { font-weight: 700; color: var(--anvc-heading); }
#anvc-root .anvc-cat-desc { font-size: .9em; margin-top: 4px; opacity: .92; }
#anvc-root .anvc-badge { font-size: .78em; font-weight: 700; padding: 4px 10px; border-radius: 999px; white-space: nowrap; color: var(--anvc-toggle); background: color-mix(in srgb, var(--anvc-toggle) 14%, transparent); }
#anvc-root .anvc-more { margin-top: 8px; background: none; color: var(--anvc-link); cursor: pointer; font-size: .86em; font-weight: 600; display: inline-flex; align-items: center; gap: 4px; padding: 2px 0; }
#anvc-root .anvc-more svg { transition: transform .2s; }
#anvc-root .anvc-more[aria-expanded="true"] svg { transform: rotate(180deg); }
#anvc-root .anvc-cat-list { margin-top: 10px; }
#anvc-root .anvc-empty { font-size: .86em; font-style: italic; opacity: .8; }
#anvc-root .anvc-table-wrap { overflow-x: auto; border: 1px solid var(--anvc-muted); border-radius: 10px; }
#anvc-root .anvc-table { width: 100%; border-collapse: collapse; font-size: .82em; }
#anvc-root .anvc-table th, #anvc-root .anvc-table td { padding: 8px 10px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--anvc-muted); }
#anvc-root .anvc-table th { font-weight: 700; color: var(--anvc-heading); background: var(--anvc-muted); }
#anvc-root .anvc-table tr:last-child td { border-bottom: 0; }
#anvc-root .anvc-table code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace; font-size: .95em; word-break: break-all; }

/* interruptor */
#anvc-root .anvc-switch { position: relative; display: inline-block; width: 48px; height: 28px; flex: none; }
#anvc-root .anvc-switch input { position: absolute; inset: 0; width: 100%; height: 100%; opacity: 0; margin: 0; cursor: pointer; z-index: 1; appearance: none; -webkit-appearance: none; }
#anvc-root .anvc-slider { position: absolute; inset: 0; border-radius: 999px; background: color-mix(in srgb, var(--anvc-text) 32%, transparent); transition: background-color .2s; }
#anvc-root .anvc-slider::before { content: ""; position: absolute; width: 22px; height: 22px; left: 3px; top: 3px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0,0,0,.3); transition: transform .2s; }
#anvc-root .anvc-switch input:checked + .anvc-slider { background: var(--anvc-toggle); }
#anvc-root .anvc-switch input:checked + .anvc-slider::before { transform: translateX(20px); }
#anvc-root .anvc-switch input:focus-visible + .anvc-slider { outline: 3px solid var(--anvc-link); outline-offset: 2px; }
#anvc-root .anvc-switch input:disabled { cursor: not-allowed; }
#anvc-root .anvc-switch input:disabled + .anvc-slider { opacity: .45; }

/* ---------- botón flotante ---------- */
#anvc-root .anvc-float {
	position: fixed; bottom: 18px; left: 18px; z-index: 3; width: 48px; height: 48px; border-radius: 50%; cursor: pointer;
	display: flex; align-items: center; justify-content: center; font-size: 24px;
	background: var(--anvc-bg); color: var(--anvc-b1-bg); border: var(--anvc-bw) solid var(--anvc-bc); box-shadow: var(--anvc-shadow);
	transition: transform .2s ease; animation: anvc-fade .4s ease both;
}
#anvc-root.anvc-float-right .anvc-float { left: auto; right: 18px; }
#anvc-root .anvc-float:hover { transform: scale(1.08) rotate(-8deg); }

/* ---------- animaciones ---------- */
@keyframes anvc-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes anvc-up { from { opacity: 0; translate: 0 28px; } to { opacity: 1; translate: 0 0; } }
@keyframes anvc-down { from { opacity: 0; translate: 0 -28px; } to { opacity: 1; translate: 0 0; } }
@keyframes anvc-left { from { opacity: 0; translate: -40px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes anvc-right { from { opacity: 0; translate: 40px 0; } to { opacity: 1; translate: 0 0; } }
@keyframes anvc-zoom { from { opacity: 0; scale: .92; } to { opacity: 1; scale: 1; } }

#anvc-root.anvc-a-fade .anvc-in { animation: anvc-fade .35s ease both; }
#anvc-root.anvc-a-slide .anvc-in { animation: anvc-up .45s cubic-bezier(.2,.8,.2,1) both; }
#anvc-root.anvc-a-slide.anvc-p-top .anvc-banner.anvc-in { animation-name: anvc-down; }
#anvc-root.anvc-a-slide.anvc-l-drawer.anvc-p-left .anvc-banner.anvc-in { animation-name: anvc-left; }
#anvc-root.anvc-a-slide.anvc-l-drawer.anvc-p-right .anvc-banner.anvc-in, #anvc-root.anvc-a-slide.anvc-pl-drawer .anvc-prefs.anvc-in { animation-name: anvc-right; }
#anvc-root.anvc-a-zoom .anvc-in { animation: anvc-zoom .35s cubic-bezier(.2,.8,.2,1) both; }
@media (prefers-reduced-motion: reduce) {
	#anvc-root .anvc-in, #anvc-root .anvc-overlay, #anvc-root .anvc-float { animation: none !important; }
	#anvc-root * { transition: none !important; }
}

/* ---------- móvil (clase puesta por JS: sirve igual en la web y en la vista previa) ---------- */
#anvc-root.anvc-mobile.anvc-mobile.anvc-mobile .anvc-banner {
	left: 0; right: 0; bottom: 0; top: auto; width: auto; max-width: none; transform: none;
	flex-direction: column; align-items: stretch; text-align: left; gap: 14px;
	padding: 20px 18px calc(16px + env(safe-area-inset-bottom, 0px));
	border-radius: var(--anvc-radius) var(--anvc-radius) 0 0; border-width: var(--anvc-bw) 0 0; max-height: 85%;
}
#anvc-root.anvc-mobile.anvc-mobile.anvc-p-top.anvc-l-bar .anvc-banner { top: 0; bottom: auto; border-radius: 0 0 var(--anvc-radius) var(--anvc-radius); border-width: 0 0 var(--anvc-bw); padding-bottom: 16px; }
#anvc-root.anvc-mobile.anvc-mobile.anvc-l-modal .anvc-banner { top: 50%; bottom: auto; left: 12px; right: 12px; transform: translateY(-50%); border-radius: var(--anvc-radius); border-width: var(--anvc-bw); text-align: center; }
#anvc-root.anvc-mobile.anvc-mobile.anvc-mobile .anvc-main { flex-direction: row; align-items: flex-start; }
#anvc-root.anvc-mobile.anvc-mobile.anvc-l-modal .anvc-main { flex-direction: column; align-items: center; }
#anvc-root.anvc-mobile .anvc-icon { width: 36px; height: 36px; font-size: 20px; }
#anvc-root.anvc-mobile.anvc-mobile.anvc-mobile .anvc-actions { flex-direction: column-reverse; align-items: stretch; flex-wrap: nowrap; margin-right: 0; }
#anvc-root.anvc-mobile .anvc-pair { flex-direction: row; }
#anvc-root.anvc-mobile .anvc-btn { white-space: normal; padding-left: 12px; padding-right: 12px; }
#anvc-root.anvc-mobile.anvc-mobile.anvc-mobile .anvc-banner > .anvc-x { top: 8px; right: 8px; margin-top: 0; }
#anvc-root.anvc-mobile .anvc-prefs-wrap { padding: 0; align-items: flex-end; }
#anvc-root.anvc-mobile.anvc-mobile .anvc-prefs { width: 100%; max-height: 92%; height: auto; border-radius: var(--anvc-radius) var(--anvc-radius) 0 0; border-width: var(--anvc-bw) 0 0; }
#anvc-root.anvc-mobile .anvc-prefs-head { padding: 18px 56px 12px 18px; }
#anvc-root.anvc-mobile .anvc-prefs-body { padding: 12px 18px 6px; }
#anvc-root.anvc-mobile .anvc-prefs-foot { padding: 12px 18px calc(14px + env(safe-area-inset-bottom, 0px)); flex-direction: column-reverse; }
#anvc-root.anvc-mobile .anvc-prefs-foot .anvc-btn-save { flex: 0 0 auto; }
#anvc-root.anvc-mobile .anvc-float { width: 44px; height: 44px; bottom: 14px; left: 14px; font-size: 22px; }
#anvc-root.anvc-mobile.anvc-float-right .anvc-float { left: auto; right: 14px; }
#anvc-root.anvc-mobile.anvc-mobile.anvc-a-slide .anvc-banner.anvc-in { animation-name: anvc-up; }
#anvc-root.anvc-mobile.anvc-mobile.anvc-a-slide.anvc-l-bar.anvc-p-top .anvc-banner.anvc-in { animation-name: anvc-down; }
#anvc-root.anvc-mobile.anvc-mobile.anvc-a-slide .anvc-prefs.anvc-in { animation-name: anvc-up; }
#anvc-root.anvc-mobile .anvc-table thead { display: none; }
#anvc-root.anvc-mobile .anvc-table tr { display: block; padding: 8px 0; border-bottom: 1px solid var(--anvc-muted); }
#anvc-root.anvc-mobile .anvc-table tr:last-child { border-bottom: 0; }
#anvc-root.anvc-mobile .anvc-table td { display: grid; grid-template-columns: 90px 1fr; gap: 8px; border: 0; padding: 3px 10px; }
#anvc-root.anvc-mobile .anvc-table td::before { content: attr(data-label); font-weight: 700; color: var(--anvc-heading); }

/* ---------- vista previa del panel: todo relativo al lienzo ---------- */
#anvc-root.anvc-preview { position: absolute; inset: 0; z-index: 1; overflow: hidden; pointer-events: none; }
#anvc-root.anvc-preview > * { pointer-events: auto; }
#anvc-root.anvc-preview .anvc-banner, #anvc-root.anvc-preview .anvc-overlay, #anvc-root.anvc-preview .anvc-prefs-wrap, #anvc-root.anvc-preview .anvc-float { position: absolute; }

/* ---------- información del consentimiento (shortcode) ---------- */
.anvc-consent-info .anvc-info-list { list-style: none; margin: 0; padding: 0; }
.anvc-consent-info code { word-break: break-all; }
