/* Ensure hidden attribute always hides regardless of other display rules */
[hidden] { display: none !important; }

/* Basic styles for CookieManager */
#cookiemanager-root { font-family: inherit, -apple-system, Segoe UI, Roboto, Arial, sans-serif; color: #333; font-size: 0.75rem; }
#cookiemanager-root a { color: #de3a20; text-decoration: none; }
.cm-btn { cursor: pointer; border-radius: 0; padding: .5rem .9rem; border: 1px solid #000; font-size: inherit; background: #fff; color: #333; text-transform: uppercase; }
.cm-btn--primary { background: #fff; color: #333; border-color: #000; }
.cm-btn--secondary { background: #fff; color: #333; border-color: #000; }
.cm-btn--ghost { background: #fff; color: #333; border-color: #000; }
.cm-btn:disabled, .cm-btn[disabled] { background: #dadada; border: none; color: #333; cursor: default; }

.cm-top-banner { position: fixed; top: 0; left: 0; right: 0; background: #fff; color: #333; padding: 1.25rem 3rem; z-index: 10000; display: flex; align-items: center; justify-content: center; border-bottom: 1px solid #ddd; }
.cm-top-banner__inner { display: grid; gap: .5rem; text-align: center; }
.cm-top-banner__policy { margin: 0; font-size: inherit; }
.cm-top-banner__policy a { color: #de3a20; text-decoration: none; }
.cm-top-banner__actions { display: flex; gap: .5rem; justify-content: center; margin-top: 0.6rem; }
.cm-top-banner__close { position: absolute; right: .75rem; top: 50%; transform: translateY(-50%); width: 30px; height: 30px; border: none; background-color: #de3a20; padding: 6px; cursor: pointer; display: grid; place-items: center; color: #de3a20; font-weight: bold; -webkit-box-shadow: 0 0 3px rgba(0,0,0,0.3); -moz-box-shadow: 0 0 3px rgba(0,0,0,0.3); box-shadow: 0 0 3px rgba(0,0,0,0.3); -webkit-border-radius: 50px 50px 50px 50px; -moz-border-radius: 50px 50px 50px 50px; border-radius: 50px 50px 50px 50px; z-index: 10002; }
.cm-top-banner__close img { width: 75%; height: auto; display: block; }

.cm-bottom-banner { position: fixed; bottom: 0; left: 0; right: 0; background: #fff; color: #333; padding: 30px 40px 0 20px; z-index: 9999; display: flex; align-items: center; justify-content: center; border-top: 1px solid #ddd; }
.cm-bottom-banner__inner { text-align: center; max-width: 920px; margin: 20px 20px 40px 20px; }
.cm-bottom-banner__line { margin: 0; }
.cm-bottom-banner__more { margin-top: .5rem; }
.cm-bottom-banner__more-content { text-align: center; }
.cm-bottom-banner__more-content ol { display: inline-block; text-align: left; margin: .5rem 30px 0; padding-left: 1.25rem; }
.cm-bottom-banner .cm-linklike { background: none; border: none; padding: 0; color: #333; text-decoration: none; cursor: pointer; font-weight: 700; text-transform: none; }

/* ensure links stay without underline on hover/focus */
#cookiemanager-root a:hover, 
#cookiemanager-root a:focus { text-decoration: none; }
.cm-bottom-banner__close { position: absolute; right: 10px; top: 10px; width: 30px; height: 30px; border: none; background-color: #de3a20; padding: 6px; cursor: pointer; display: grid; place-items: center; color: #de3a20; font-weight: bold; -webkit-box-shadow: 0 0 3px rgba(0,0,0,0.3); -moz-box-shadow: 0 0 3px rgba(0,0,0,0.3); box-shadow: 0 0 3px rgba(0,0,0,0.3); -webkit-border-radius: 50px 50px 50px 50px; -moz-border-radius: 50px 50px 50px 50px; border-radius: 50px 50px 50px 50px; z-index: 10002; }
.cm-bottom-banner__close img { width: 75%; height: auto; display: block; }

/* Theme variants (banners only) */
.cm-top-banner--dark { background: #212223; color: #fff; border-bottom-color: #333; }
.cm-bottom-banner--dark { background: #212223; color: #fff; border-top-color: #333; }
.cm-top-banner--dark .cm-top-banner__policy a,
.cm-bottom-banner--dark .cm-bottom-banner__line a { color: #de3a20; }
/* '+ info' button inside dark bottom banner should be white */
.cm-bottom-banner--dark .cm-linklike { color: #fff; }

.cm-modal[hidden] { display: none; }
.cm-modal { position: fixed; inset: 0; background: rgba(255,255,255,0.35); backdrop-filter: blur(3px); -webkit-backdrop-filter: blur(3px); display: grid; place-items: center; z-index: 10001; }
.cm-modal__dialog { background: #fff; border-radius: 10px; width: min(640px, 92vw); box-shadow: 0 12px 40px rgba(0,0,0,.2); overflow: hidden; }
.cm-modal__header { display: flex; align-items: center; justify-content: space-between; padding: 1rem 1.25rem; border-bottom: 1px solid #eee; }
.cm-modal__body { padding: 1rem 1.25rem; display: grid; gap: .75rem; }
.cm-modal__body, .cm-modal__intro, .cm-cookie-row__desc, .cm-cookie-row__desc p { text-align: left; }
.cm-modal__footer { padding: .75rem 1.25rem; display: flex; justify-content: flex-end; gap: .5rem; border-top: 1px solid #eee; }
.cm-modal__close { background-color: #de3a20; border: none; width: 30px; height: 30px; padding: 6px; cursor: pointer; display: grid; place-items: center; color: #de3a20; font-weight: bold; -webkit-box-shadow: 0 0 3px rgba(0,0,0,0.3); -moz-box-shadow: 0 0 3px rgba(0,0,0,0.3); box-shadow: 0 0 3px rgba(0,0,0,0.3); -webkit-border-radius: 50px 50px 50px 50px; -moz-border-radius: 50px 50px 50px 50px; border-radius: 50px 50px 50px 50px; }
.cm-modal__close img { width: 75%; height: auto; display: block; }

.cm-switch { display: flex; align-items: center; gap: .5rem; }
.cm-switch input { transform: scale(1.2); }

/* Configurator enhancements */
.cm-modal__intro { margin: .25rem 0 1rem; font-size: inherit; color: #333; }
.cm-modal__intro a { margin-left: .5rem; }

.cm-cookie-row { border: 1px solid #eee; border-radius: 8px; padding: .5rem .75rem; }
.cm-cookie-row + .cm-cookie-row { margin-top: .5rem; }
.cm-cookie-row__header { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .5rem; }
.cm-cookie-row__toggle { width: 28px; height: 28px; border-radius: 6px; border: 1px solid #bbb; background: #f7f7f7; cursor: pointer; }
.cm-cookie-row__title { font-weight: 600; }
.cm-cookie-row__actions { display: flex; gap: .5rem; }
.cm-cookie-row__desc { margin-top: .5rem; }

.cm-table { width: 100%; border-collapse: collapse; font-size: inherit; }
.cm-table th, .cm-table td { border-bottom: 1px solid #eee; padding: .5rem; text-align: left; vertical-align: middle; }
.cm-table thead th { background: #fff; font-weight: 600; }
.cm-table__actions-col { width: 240px; text-align: right; }
.cm-table__row-actions { text-align: right; white-space: nowrap; }
.cm-table__row-actions .cm-btn + .cm-btn { margin-left: .5rem; }

/* Make analytics "Detail" column narrower and give actions more room */
.cm-table--analytics th:nth-child(2),
.cm-table--analytics td:nth-child(2) { width: 120px; }
.cm-table--analytics th:nth-child(3),
.cm-table--analytics td:nth-child(3) { width: 240px; }

/* Hover effect for actionable buttons (exclude disabled; close/linklike are not .cm-btn) */
.cm-btn:not(:disabled):not([disabled]):hover {
	background-color: #de3a20;
	border-color: #de3a20;
	color: #fff;
}

/* Selected state (mirrors hover) */
.cm-btn.cm-selected {
	background-color: #de3a20;
	border-color: #de3a20;
	color: #fff;
}
