/* TT consent manager styles — CIPA consent banner + settings modal.
   Plain CSS (copied, not compiled). Keep self-contained and theme-light so it
   renders even before the site CSS finishes loading. */

.tt-cc-banner {
	position: fixed;
	left: 16px;
	right: 16px;
	bottom: 16px;
	z-index: 2147483646;
	display: none;
	max-width: 920px;
	margin: 0 auto;
	background: #ffffff;
	color: #1f2733;
	border: 1px solid #d8dee9;
	border-radius: 12px;
	box-shadow: 0 12px 40px rgba(16, 24, 40, 0.18);
	padding: 18px 20px;
	font-family: inherit;
	font-size: 15px;
	line-height: 1.5;
}
.tt-cc-banner.is-open { display: block; }
.tt-cc-banner__inner {
	display: flex;
	gap: 18px;
	align-items: center;
	flex-wrap: wrap;
}
.tt-cc-banner__text { flex: 1 1 320px; min-width: 260px; }
.tt-cc-banner__title { margin: 0 0 4px; font-size: 16px; font-weight: 700; }
.tt-cc-banner__desc { margin: 0; color: #44505f; }
.tt-cc-banner__desc a,
.tt-cc-modal a { color: #2f5fd0; text-decoration: underline; }
.tt-cc-banner__actions {
	display: flex;
	gap: 10px;
	flex: 0 0 auto;
	flex-wrap: wrap;
}

.tt-cc-btn {
	appearance: none;
	cursor: pointer;
	border-radius: 8px;
	border: 1px solid transparent;
	padding: 10px 16px;
	font-size: 14px;
	font-weight: 600;
	line-height: 1;
	font-family: inherit;
}
.tt-cc-btn--primary { background: #2f5fd0; color: #fff; }
.tt-cc-btn--primary:hover { background: #2750b4; }
.tt-cc-btn--ghost { background: #fff; color: #2f5fd0; border-color: #c3cfe6; }
.tt-cc-btn--ghost:hover { background: #f2f6ff; }
.tt-cc-btn:disabled { opacity: 0.5; cursor: not-allowed; }
.tt-cc-btn:focus-visible,
.tt-cc-toggle:focus-visible,
.tt-cc-modal__close:focus-visible,
.copyrights__cookie-settings:focus-visible {
	/* Two-tone ring: dark band (~15:1 on white, high on the blue button) guarantees
	   the WCAG 2.2 SC 1.4.11 3:1 boundary; amber stays as a brand accent. */
	outline: 2px solid #1f2733;
	outline-offset: 2px;
	box-shadow: 0 0 0 4px #ffbf47;
}

/* Settings modal */
.tt-cc-modal {
	position: fixed;
	inset: 0;
	z-index: 2147483647;
	display: none;
}
.tt-cc-modal.is-open { display: block; }
.tt-cc-modal[hidden] { display: none; }
.tt-cc-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(16, 24, 40, 0.55);
}
.tt-cc-modal__panel {
	position: relative;
	max-width: 560px;
	margin: 6vh auto 0;
	background: #fff;
	color: #1f2733;
	border-radius: 14px;
	box-shadow: 0 24px 60px rgba(16, 24, 40, 0.3);
	max-height: 88vh;
	overflow: auto;
	font-size: 15px;
}
.tt-cc-modal__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 22px;
	border-bottom: 1px solid #eceff4;
}
.tt-cc-modal__head h2 { margin: 0; font-size: 18px; font-weight: 700; }
.tt-cc-modal__close {
	appearance: none;
	background: transparent;
	border: 0;
	font-size: 26px;
	line-height: 1;
	cursor: pointer;
	color: #6b7685;
	padding: 4px 8px;
}
.tt-cc-modal__body { padding: 18px 22px; }
.tt-cc-modal__intro { margin: 0 0 14px; color: #44505f; }
.tt-cc-group { border: 1px solid #eceff4; border-radius: 10px; margin-bottom: 12px; }
.tt-cc-group__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	padding: 14px 16px;
	margin: 0;
	cursor: pointer;
}
.tt-cc-group__meta { display: flex; flex-direction: column; gap: 3px; }
.tt-cc-group__title { font-weight: 700; }
.tt-cc-group__desc { color: #5a6675; font-size: 13.5px; line-height: 1.45; }
.tt-cc-toggle { width: 20px; height: 20px; flex: 0 0 auto; cursor: pointer; }
.tt-cc-toggle:disabled { cursor: not-allowed; }
.tt-cc-gpc {
	background: #fff7e6;
	border: 1px solid #ffe2a8;
	color: #6b4e00;
	border-radius: 10px;
	padding: 12px 14px;
	font-size: 13.5px;
	line-height: 1.5;
}
.tt-cc-modal__foot {
	display: flex;
	gap: 10px;
	justify-content: flex-end;
	flex-wrap: wrap;
	padding: 16px 22px;
	border-top: 1px solid #eceff4;
}

/* Footer "Cookie Settings" re-open control — render as an inline link that
   inherits the footer copyrights color. */
.copyrights__cookie-settings {
	appearance: none;
	background: none;
	border: 0;
	padding: 0;
	margin: 0;
	font: inherit;
	color: inherit;
	cursor: pointer;
	text-decoration: underline;
}
.copyrights__cookie-settings:hover { text-decoration: none; }

@media (max-width: 560px) {
	.tt-cc-banner__actions { width: 100%; }
	.tt-cc-banner__actions .tt-cc-btn { flex: 1 1 auto; }
	.tt-cc-modal__foot { justify-content: stretch; }
	.tt-cc-modal__foot .tt-cc-btn { flex: 1 1 auto; }
}

@media (prefers-reduced-motion: no-preference) {
	.tt-cc-banner.is-open { animation: tt-cc-in 0.2s ease-out; }
}
@keyframes tt-cc-in { from { transform: translateY(8px); opacity: 0; } to { transform: none; opacity: 1; } }
