/* The X Concept Privacy & Accessibility. Sizes inside the widgets are in px so the text-size setting does not resize the toolbar itself. */
:root {
	--txcc-accent: var(--txc-accent, #3355FF);
	--txcc-ink: #0A0F1C;
	--txcc-muted: #4B5568;
	--txcc-line: #E3E8F2;
	--txcc-soft: #F3F6FB;
	--txcc-radius: 20px;
	--txcc-shadow: 0 24px 60px -18px rgba(7, 11, 22, .35), 0 2px 6px rgba(7, 11, 22, .08);
	--txcc-gap: 20px;
	--txcc-z: 2147483000;
}

.txcc-ui, .txcc-ui * { box-sizing: border-box; }
.txcc-ui { font-family: inherit; font-size: 15px; line-height: 1.5; letter-spacing: normal; word-spacing: normal; color: var(--txcc-ink); -webkit-font-smoothing: antialiased; }
.txcc-ui [hidden] { display: none !important; }
.txcc-ui a { color: var(--txcc-accent); text-decoration: underline; text-underline-offset: 2px; }
.txcc-ui h2 { margin: 0; font-size: 17px; line-height: 1.3; font-weight: 700; letter-spacing: -.01em; color: var(--txcc-ink); }
.txcc-ui p { margin: 0; }
.txcc-ui :focus-visible { outline: 3px solid var(--txcc-accent); outline-offset: 2px; }
.txcc-sr { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.txcc-live { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* Buttons */
.txcc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 44px; padding: 10px 18px; border: 1.5px solid var(--txcc-ink); border-radius: 999px; background: #fff; color: var(--txcc-ink); font: inherit; font-size: 14px; font-weight: 600; line-height: 1.2; cursor: pointer; transition: background-color .15s, color .15s, border-color .15s; }
.txcc-btn:hover { background: var(--txcc-soft); }
.txcc-btn--primary { background: var(--txcc-ink); color: #fff; }
.txcc-btn--primary:hover { background: color-mix(in srgb, var(--txcc-ink) 82%, var(--txcc-accent)); }
.txcc-btn svg { width: 18px; height: 18px; }
.txcc-icon-btn { display: inline-grid; place-items: center; width: 40px; height: 40px; padding: 0; border: 0; border-radius: 999px; background: var(--txcc-soft); color: var(--txcc-ink); cursor: pointer; }
.txcc-icon-btn:hover { background: var(--txcc-line); }
.txcc-icon-btn:disabled { opacity: .4; cursor: default; }
.txcc-icon-btn svg { width: 20px; height: 20px; }

/* Banner: a card that leaves the page usable (not a wall). */
.txcc-banner { position: fixed; z-index: var(--txcc-z); bottom: var(--txcc-gap); width: min(420px, calc(100vw - 2 * var(--txcc-gap))); padding: 22px; border: 1px solid var(--txcc-line); border-radius: var(--txcc-radius); background: #fff; box-shadow: var(--txcc-shadow); opacity: 0; transform: translateY(16px); transition: opacity .25s ease, transform .25s ease; }
.txcc-banner.is-in { opacity: 1; transform: none; }
.txcc-banner--left { left: var(--txcc-gap); }
.txcc-banner--right { right: var(--txcc-gap); }
.txcc-banner--center { left: 50%; transform: translate(-50%, 16px); width: min(640px, calc(100vw - 2 * var(--txcc-gap))); }
.txcc-banner--center.is-in { transform: translateX(-50%); }
.txcc-banner--bar { left: 0; right: 0; bottom: 0; width: auto; border-radius: 0; border-width: 1px 0 0; }
.txcc-banner--bar .txcc-banner__inner { max-width: 1200px; margin: 0 auto; display: grid; grid-template-columns: 1fr auto; gap: 8px 32px; align-items: center; }
.txcc-banner--bar .txcc-banner__title, .txcc-banner--bar .txcc-banner__text, .txcc-banner--bar .txcc-gpc { grid-column: 1; }
.txcc-banner--bar .txcc-actions { grid-column: 2; grid-row: 1 / span 3; margin: 0; }
.txcc-banner__title { display: flex; align-items: center; gap: 10px; }
.txcc-banner__icon { display: inline-grid; place-items: center; flex: none; width: 34px; height: 34px; border-radius: 10px; background: color-mix(in srgb, var(--txcc-accent) 12%, #fff); color: var(--txcc-accent); }
.txcc-banner__icon svg { width: 20px; height: 20px; }
.txcc-banner__text { margin-top: 10px !important; color: var(--txcc-muted); font-size: 14px; }
.txcc-gpc { margin-top: 10px !important; padding: 8px 12px; border-radius: 10px; background: #ECFDF5; color: #065F46; font-size: 13px; }
.txcc-actions { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; margin-top: 16px; }
/* Accept and Reject look the same: no nudging. */
.txcc-actions [data-txcc="reject"] { background: var(--txcc-ink); color: #fff; }
.txcc-actions [data-txcc="reject"]:hover { background: color-mix(in srgb, var(--txcc-ink) 82%, var(--txcc-accent)); }
.txcc-actions .txcc-btn { padding-inline: 10px; }

/* Preferences dialog */
.txcc-dialog { width: min(580px, calc(100vw - 24px)); max-height: min(88vh, 760px); padding: 0; border: 0; border-radius: 24px; background: #fff; box-shadow: var(--txcc-shadow); color: var(--txcc-ink); overflow: auto; }
.txcc-dialog::backdrop { background: rgba(7, 11, 22, .55); backdrop-filter: blur(3px); }
.txcc-dialog__inner { padding: 24px; }
.txcc-dialog__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.txcc-dialog__head h2 { font-size: 21px; }
.txcc-dialog__intro { margin-top: 10px !important; color: var(--txcc-muted); font-size: 14px; }
.txcc-cats { list-style: none; margin: 20px 0 0; padding: 0; display: grid; gap: 10px; }
.txcc-cat { padding: 16px 18px; border: 1px solid var(--txcc-line); border-radius: 16px; background: var(--txcc-soft); }
.txcc-cat__head { display: flex; align-items: center; justify-content: space-between; gap: 16px; }
.txcc-cat__name { font-weight: 700; font-size: 15px; cursor: pointer; }
.txcc-cat__desc { margin-top: 6px !important; color: var(--txcc-muted); font-size: 13.5px; }
.txcc-always { font-size: 12px; font-weight: 700; color: #065F46; background: #D1FAE5; padding: 4px 10px; border-radius: 999px; }
.txcc-switch { appearance: none; -webkit-appearance: none; flex: none; position: relative; width: 48px; height: 28px; margin: 0; border-radius: 999px; background: #C3CBDA; cursor: pointer; transition: background-color .15s; }
.txcc-switch::after { content: ""; position: absolute; top: 3px; left: 3px; width: 22px; height: 22px; border-radius: 50%; background: #fff; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); transition: transform .15s; }
.txcc-switch:checked { background: var(--txcc-accent); }
.txcc-switch:checked::after { transform: translateX(20px); }
.txcc-switch:disabled { opacity: .5; cursor: not-allowed; }
.txcc-actions--dialog { margin-top: 20px; }

/* Floating cookie button (optional) */
.txcc-float { position: fixed; z-index: var(--txcc-z); bottom: var(--txcc-gap); display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--txcc-line); border-radius: 50%; background: #fff; color: var(--txcc-ink); box-shadow: var(--txcc-shadow); cursor: pointer; }
.txcc-float--left { left: var(--txcc-gap); }
.txcc-float--right { right: var(--txcc-gap); }
.txcc-float svg { width: 22px; height: 22px; }

/* Accessibility toolbar */
.txcc-a11y { position: fixed; z-index: calc(var(--txcc-z) - 1); bottom: var(--txcc-gap); transition: bottom .25s ease; }
.txcc-a11y--right { right: var(--txcc-gap); }
.txcc-a11y--left { left: var(--txcc-gap); }
html.txcc-has-banner .txcc-a11y--lift { bottom: calc(var(--txcc-banner-h, 0px) + var(--txcc-gap) + 12px); }
.txcc-a11y__btn { position: relative; display: grid; place-items: center; width: 52px; height: 52px; padding: 0; border: 2px solid #fff; border-radius: 50%; background: var(--txcc-accent); color: #fff; box-shadow: var(--txcc-shadow); cursor: pointer; transition: transform .15s; }
.txcc-a11y__btn:hover { transform: scale(1.06); }
.txcc-a11y__btn svg { width: 28px; height: 28px; stroke-width: 2; }
.txcc-a11y__btn.is-active::after { content: ""; position: absolute; top: 2px; right: 2px; width: 12px; height: 12px; border: 2px solid #fff; border-radius: 50%; background: #10B981; }
.txcc-a11y__panel { position: absolute; bottom: 64px; width: min(360px, calc(100vw - 2 * var(--txcc-gap))); max-height: calc(100vh - 120px); overflow: auto; padding: 18px; border: 1px solid var(--txcc-line); border-radius: var(--txcc-radius); background: #fff; box-shadow: var(--txcc-shadow); }
.txcc-a11y--right .txcc-a11y__panel { right: 0; }
.txcc-a11y--left .txcc-a11y__panel { left: 0; }
.txcc-a11y__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 14px; }
.txcc-a11y__head h2 { font-size: 18px; }
.txcc-a11y__size { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 14px; background: var(--txcc-soft); }
.txcc-a11y__label { display: inline-flex; align-items: center; gap: 10px; font-weight: 600; font-size: 14px; }
.txcc-a11y__label svg { width: 20px; height: 20px; color: var(--txcc-accent); }
.txcc-stepper { display: flex; align-items: center; gap: 8px; }
.txcc-stepper output { min-width: 46px; text-align: center; font-weight: 700; font-variant-numeric: tabular-nums; font-size: 14px; }
.txcc-stepper .txcc-icon-btn { background: #fff; border: 1px solid var(--txcc-line); width: 36px; height: 36px; }
.txcc-a11y__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin-top: 10px; }
.txcc-tile { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; min-height: 76px; padding: 12px; border: 1.5px solid var(--txcc-line); border-radius: 14px; background: #fff; color: var(--txcc-ink); font: inherit; font-size: 13.5px; font-weight: 600; line-height: 1.25; text-align: left; cursor: pointer; transition: border-color .15s, background-color .15s; }
.txcc-tile:hover { border-color: color-mix(in srgb, var(--txcc-accent) 50%, var(--txcc-line)); }
.txcc-tile svg { width: 22px; height: 22px; color: var(--txcc-accent); }
.txcc-tile[aria-pressed="true"] { border-color: var(--txcc-accent); background: color-mix(in srgb, var(--txcc-accent) 9%, #fff); }
.txcc-tile[aria-pressed="true"]::after { content: ""; position: absolute; top: 10px; right: 10px; width: 18px; height: 18px; border-radius: 50%; background: var(--txcc-accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center / 12px no-repeat; }
.txcc-a11y__reset { width: 100%; margin-top: 12px; }
.txcc-a11y__foot { margin-top: 12px !important; font-size: 13px; color: var(--txcc-muted); text-align: center; }

.txcc-guide { display: none; }

/* Phones: banner spans the bottom, toolbar button sits above it. */
@media (max-width: 640px) {
	:root { --txcc-gap: 12px; }
	.txcc-banner, .txcc-banner--center { left: 0; right: 0; bottom: 0; width: auto; padding: 18px 16px calc(16px + env(safe-area-inset-bottom)); border-radius: 20px 20px 0 0; border-width: 1px 0 0; transform: translateY(16px); }
	.txcc-banner.is-in, .txcc-banner--center.is-in { transform: none; }
	.txcc-banner--bar .txcc-banner__inner { display: block; }
	.txcc-banner--bar .txcc-actions { margin-top: 14px; }
	.txcc-actions { grid-template-columns: 1fr 1fr; }
	.txcc-actions [data-txcc="customize"] { grid-column: 1 / -1; order: 3; }
	html.txcc-has-banner .txcc-a11y { bottom: calc(var(--txcc-banner-h, 0px) + 12px); }
	.txcc-a11y__btn { width: 46px; height: 46px; }
	.txcc-a11y__btn svg { width: 24px; height: 24px; }
	.txcc-a11y--no-mobile { display: none; }
	.txcc-a11y__panel { position: fixed; left: 12px; right: 12px; bottom: 70px; width: auto; max-height: calc(100vh - 100px); }
	.txcc-dialog__inner { padding: 20px 18px; }
	.txcc-actions--dialog { grid-template-columns: 1fr 1fr; }
	.txcc-actions--dialog [data-txcc="save"] { grid-column: 1 / -1; order: 3; }
}

@media (prefers-reduced-motion: reduce) {
	.txcc-banner, .txcc-a11y, .txcc-a11y__btn, .txcc-switch, .txcc-switch::after { transition: none; }
}

@media print {
	.txcc-ui, .txcc-guide { display: none !important; }
}

/* ===== Effects on the page (never on the widgets) ===== */
html.txcc-fs-1 { font-size: 112% !important; }
html.txcc-fs-2 { font-size: 125% !important; }
html.txcc-fs-3 { font-size: 140% !important; }
html.txcc-fs-4 { font-size: 160% !important; }

/* WCAG 1.4.12 text spacing values. */
html.txcc-lh body :where(p, li, dd, dt, td, th, blockquote, figcaption, label, h1, h2, h3, h4, h5, h6, summary):not(.txcc-ui *) { line-height: 1.9 !important; }
html.txcc-lh body :where(p):not(.txcc-ui *) { margin-bottom: 2em !important; }
html.txcc-ls body :not(.txcc-ui, .txcc-ui *, svg, svg *) { letter-spacing: .12em !important; word-spacing: .16em !important; }

html.txcc-font body :not(.txcc-ui, .txcc-ui *, svg, svg *, code, pre, kbd) { font-family: Verdana, Tahoma, "Segoe UI", Arial, sans-serif !important; }

html.txcc-links body a:not(.txcc-ui a) { text-decoration: underline !important; text-decoration-thickness: 2px !important; text-underline-offset: 3px !important; outline: 2px solid #FFB800 !important; outline-offset: 2px; border-radius: 2px; }

html.txcc-contrast { --txcc-c: contrast(1.45) saturate(1.15); --txc-muted: #1F2633; --txc-border: #6B7486; }
html.txcc-gray { --txcc-g: grayscale(1); }
html.txcc-contrast body > :not(.txcc-ui, script, style, .txcc-guide),
html.txcc-gray body > :not(.txcc-ui, script, style, .txcc-guide) { filter: var(--txcc-c, ) var(--txcc-g, ); }

html.txcc-still *, html.txcc-still *::before, html.txcc-still *::after { animation-duration: .001ms !important; animation-iteration-count: 1 !important; transition-duration: .001ms !important; scroll-behavior: auto !important; }

html.txcc-cursor, html.txcc-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24'%3E%3Cpath d='M4 2.5l15 7.6-6.6 2-2.1 6.6Z' fill='%230A0F1C' stroke='white' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") 6 4, auto !important; }
html.txcc-cursor a, html.txcc-cursor a *, html.txcc-cursor button, html.txcc-cursor button *, html.txcc-cursor summary, html.txcc-cursor label { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 24 24'%3E%3Cpath d='M4 2.5l15 7.6-6.6 2-2.1 6.6Z' fill='%233355FF' stroke='white' stroke-width='1.4' stroke-linejoin='round'/%3E%3C/svg%3E") 6 4, pointer !important; }

html.txcc-guide .txcc-guide { display: block; position: fixed; inset: 0; z-index: calc(var(--txcc-z) - 2); pointer-events: none; background: linear-gradient(to bottom, rgba(7, 11, 22, .55) calc(var(--y, 50vh) - 44px), transparent calc(var(--y, 50vh) - 44px), transparent calc(var(--y, 50vh) + 44px), rgba(7, 11, 22, .55) calc(var(--y, 50vh) + 44px)); }

html.txcc-focus :focus-visible:not(.txcc-ui *) { outline: 3px solid #FFB800 !important; outline-offset: 3px !important; box-shadow: 0 0 0 7px #0A0F1C !important; }

/* Cookie table on the cookie policy */
.txcc-table-wrap { overflow-x: auto; margin: 1rem 0 2rem; border: 1px solid var(--txc-border, #E3E8F2); border-radius: 14px; }
.txc-prose .txcc-table, .txcc-table { margin: 0; width: 100%; border-collapse: collapse; font-size: .9375rem; }
.txcc-table th, .txcc-table td, .txc-prose .txcc-table th, .txc-prose .txcc-table td { padding: .75rem 1rem; text-align: left; vertical-align: top; border-bottom: 1px solid var(--txc-border, #E3E8F2); }
.txcc-table thead th { background: var(--txcc-soft); font-weight: 700; white-space: nowrap; }
.txcc-table tr:last-child td { border-bottom: 0; }
.txcc-table code { font-size: .875em; white-space: nowrap; }
.txcc-status { display: inline-block; margin-top: .5rem; color: var(--txc-muted, #4B5568); font-size: .9375rem; }
