/**
 * CookieConsent v3 — Stylesheet
 *
 * This is a placeholder file. For production use, replace this file with
 * the official cookieconsent.css from:
 * https://cdn.jsdelivr.net/gh/orestbida/cookieconsent@v3.0.1/dist/cookieconsent.css
 *
 * Alternatively, the plugin can load the CSS from CDN by changing the
 * wp_enqueue_style URL in class-frontend.php.
 *
 * The styles below provide the core layout for the consent modal and
 * preferences modal used by cookieconsent v3.
 *
 * @see https://github.com/orestbida/cookieconsent
 * @version 3.0.1
 */

/* ================================================
   1. CSS Custom Properties (Theme Variables)
   ================================================ */

:root {
	--cc-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
	--cc-modal-border-radius: 0.75rem;
	--cc-btn-border-radius: 0.375rem;
	--cc-modal-transition-duration: .25s;
	--cc-link-color: #253b48;
	--cc-modal-margin: 1rem;

	/* Light theme */
	--cc-bg: #fff;
	--cc-primary-color: #40424e;
	--cc-secondary-color: #636577;
	--cc-btn-primary-bg: #40424e;
	--cc-btn-primary-color: #fff;
	--cc-btn-primary-hover-bg: #2d2f39;
	--cc-btn-secondary-bg: #eaeff2;
	--cc-btn-secondary-color: #40424e;
	--cc-btn-secondary-hover-bg: #d4dce0;
	--cc-separator-border-color: #e0e4e7;
	--cc-toggle-on-bg: #40424e;
	--cc-toggle-off-bg: #b0b3bf;
	--cc-toggle-readonly-bg: #cbd0d8;
	--cc-overlay-bg: rgba(0, 0, 0, 0.55);
	--cc-cookie-category-block-bg: #f0f4f7;
	--cc-section-border: #e9ecef;
}

/* Dark theme */
html.cc--darkmode {
	--cc-bg: #1d1f27;
	--cc-primary-color: #d5d7e0;
	--cc-secondary-color: #9ea1b1;
	--cc-btn-primary-bg: #c2c4d1;
	--cc-btn-primary-color: #1d1f27;
	--cc-btn-primary-hover-bg: #e0e2eb;
	--cc-btn-secondary-bg: #2b2d38;
	--cc-btn-secondary-color: #d5d7e0;
	--cc-btn-secondary-hover-bg: #353742;
	--cc-separator-border-color: #36384a;
	--cc-toggle-on-bg: #c2c4d1;
	--cc-toggle-off-bg: #525567;
	--cc-toggle-readonly-bg: #3d4050;
	--cc-link-color: #c2c4d1;
	--cc-overlay-bg: rgba(0, 0, 0, 0.65);
	--cc-cookie-category-block-bg: #25272f;
	--cc-section-border: #36384a;
}

/* ================================================
   2. Base / Reset
   ================================================ */

#cc-main {
	font-family: var(--cc-font-family);
	font-size: 15px;
	font-weight: 400;
	line-height: 1.5;
	color: var(--cc-primary-color);
	-webkit-font-smoothing: antialiased;
	position: relative;
	z-index: 2147483647; /* Max z-index to stay above everything */
}

#cc-main *,
#cc-main *::before,
#cc-main *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

#cc-main a {
	color: var(--cc-link-color);
	text-decoration: underline;
}

#cc-main a:hover {
	text-decoration: none;
}

/* ================================================
   3. Overlay
   ================================================ */

.cc-overlay {
	position: fixed;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	background: var(--cc-overlay-bg);
	z-index: 2147483646;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--cc-modal-transition-duration) ease, visibility var(--cc-modal-transition-duration) ease;
}

.cc-overlay.cc-overlay--visible {
	opacity: 1;
	visibility: visible;
}

/* ================================================
   4. Consent Modal
   ================================================ */

.cm {
	position: fixed;
	z-index: 2147483647;
	background: var(--cc-bg);
	border-radius: var(--cc-modal-border-radius);
	box-shadow: 0 4px 24px rgba(0, 0, 0, 0.15);
	padding: 1.25rem 1.5rem;
	max-width: 420px;
	width: calc(100% - 2 * var(--cc-modal-margin));
	opacity: 0;
	visibility: hidden;
	transform: translateY(20px);
	transition: opacity var(--cc-modal-transition-duration) ease,
	            visibility var(--cc-modal-transition-duration) ease,
	            transform var(--cc-modal-transition-duration) ease;
}

.cm--visible {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

/* Positions */
.cm--bottom-right { bottom: var(--cc-modal-margin); right: var(--cc-modal-margin); }
.cm--bottom-left  { bottom: var(--cc-modal-margin); left: var(--cc-modal-margin); }
.cm--bottom-center { bottom: var(--cc-modal-margin); left: 50%; transform: translateX(-50%); }
.cm--bottom-center.cm--visible { transform: translateX(-50%) translateY(0); }
.cm--top-right    { top: var(--cc-modal-margin); right: var(--cc-modal-margin); }
.cm--top-left     { top: var(--cc-modal-margin); left: var(--cc-modal-margin); }
.cm--top-center   { top: var(--cc-modal-margin); left: 50%; transform: translateX(-50%); }
.cm--middle-center { top: 50%; left: 50%; transform: translate(-50%, -50%); }
.cm--middle-left  { top: 50%; left: var(--cc-modal-margin); transform: translateY(-50%); }
.cm--middle-right { top: 50%; right: var(--cc-modal-margin); transform: translateY(-50%); }

/* Bar layout */
.cm--bar {
	max-width: 100%;
	width: 100%;
	border-radius: 0;
	left: 0;
	right: 0;
}

.cm--bar.cm--bottom { bottom: 0; }
.cm--bar.cm--top    { top: 0; }

.cm--bar .cm__body {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	max-width: 1200px;
	margin: 0 auto;
}

.cm--bar .cm__texts { flex: 1; }
.cm--bar .cm__btns  { flex-shrink: 0; }

/* Cloud layout */
.cm--cloud {
	max-width: 520px;
}

/* Content */
.cm__title {
	font-size: 1.05em;
	font-weight: 700;
	margin-bottom: 0.5rem;
	line-height: 1.3;
}

.cm__desc {
	font-size: 0.9em;
	color: var(--cc-secondary-color);
	margin-bottom: 1rem;
	line-height: 1.55;
}

/* Buttons */
.cm__btns {
	display: flex;
	gap: 0.5rem;
	flex-wrap: wrap;
}

.cm__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.6rem 1.2rem;
	font-size: 0.875rem;
	font-weight: 600;
	border: none;
	border-radius: var(--cc-btn-border-radius);
	cursor: pointer;
	transition: background 0.15s ease;
	font-family: inherit;
	line-height: 1;
	white-space: nowrap;
}

.cm__btn--primary {
	background: var(--cc-btn-primary-bg);
	color: var(--cc-btn-primary-color);
}

.cm__btn--primary:hover {
	background: var(--cc-btn-primary-hover-bg);
}

.cm__btn--secondary {
	background: var(--cc-btn-secondary-bg);
	color: var(--cc-btn-secondary-color);
}

.cm__btn--secondary:hover {
	background: var(--cc-btn-secondary-hover-bg);
}

/* ================================================
   5. Preferences Modal
   ================================================ */

.pm {
	position: fixed;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	z-index: 2147483647;
	background: var(--cc-bg);
	border-radius: var(--cc-modal-border-radius);
	box-shadow: 0 4px 32px rgba(0, 0, 0, 0.2);
	width: 680px;
	max-width: calc(100% - 2rem);
	max-height: calc(100vh - 4rem);
	display: flex;
	flex-direction: column;
	opacity: 0;
	visibility: hidden;
	transition: opacity var(--cc-modal-transition-duration) ease,
	            visibility var(--cc-modal-transition-duration) ease;
}

.pm--visible {
	opacity: 1;
	visibility: visible;
}

/* Right-side panel variant */
.pm--right {
	right: 0;
	left: auto;
	top: 0;
	bottom: 0;
	transform: none;
	border-radius: var(--cc-modal-border-radius) 0 0 var(--cc-modal-border-radius);
	max-height: 100vh;
	height: 100vh;
	width: 440px;
}

/* Header */
.pm__header {
	padding: 1.25rem 1.5rem;
	border-bottom: 1px solid var(--cc-separator-border-color);
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-shrink: 0;
}

.pm__title {
	font-size: 1.1em;
	font-weight: 700;
}

.pm__close-btn {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.25rem;
	color: var(--cc-secondary-color);
	font-size: 1.25rem;
	line-height: 1;
	transition: color 0.15s ease;
}

.pm__close-btn:hover {
	color: var(--cc-primary-color);
}

/* Body / sections */
.pm__body {
	overflow-y: auto;
	padding: 1rem 1.5rem;
	flex: 1;
}

.pm__section {
	padding: 1rem 0;
	border-bottom: 1px solid var(--cc-section-border);
}

.pm__section:last-child {
	border-bottom: none;
}

.pm__section-title-wrapper {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 0.5rem;
}

.pm__section-title {
	font-size: 0.95em;
	font-weight: 600;
}

.pm__section-desc {
	font-size: 0.85em;
	color: var(--cc-secondary-color);
	line-height: 1.5;
}

/* Toggle switches */
.pm__toggle {
	position: relative;
	display: inline-block;
	width: 42px;
	height: 22px;
	flex-shrink: 0;
}

.pm__toggle input {
	opacity: 0;
	width: 0;
	height: 0;
	position: absolute;
}

.pm__toggle-slider {
	position: absolute;
	cursor: pointer;
	top: 0;
	left: 0;
	right: 0;
	bottom: 0;
	background: var(--cc-toggle-off-bg);
	border-radius: 22px;
	transition: background 0.2s ease;
}

.pm__toggle-slider::before {
	content: '';
	position: absolute;
	width: 16px;
	height: 16px;
	left: 3px;
	bottom: 3px;
	background: #fff;
	border-radius: 50%;
	transition: transform 0.2s ease;
}

.pm__toggle input:checked + .pm__toggle-slider {
	background: var(--cc-toggle-on-bg);
}

.pm__toggle input:checked + .pm__toggle-slider::before {
	transform: translateX(20px);
}

.pm__toggle input:disabled + .pm__toggle-slider {
	background: var(--cc-toggle-readonly-bg);
	cursor: default;
}

/* Footer */
.pm__footer {
	padding: 1rem 1.5rem;
	border-top: 1px solid var(--cc-separator-border-color);
	display: flex;
	gap: 0.5rem;
	justify-content: flex-end;
	flex-wrap: wrap;
	flex-shrink: 0;
}

.pm__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.55rem 1.1rem;
	font-size: 0.85rem;
	font-weight: 600;
	border: none;
	border-radius: var(--cc-btn-border-radius);
	cursor: pointer;
	transition: background 0.15s ease;
	font-family: inherit;
	line-height: 1;
}

.pm__btn--primary {
	background: var(--cc-btn-primary-bg);
	color: var(--cc-btn-primary-color);
}

.pm__btn--primary:hover {
	background: var(--cc-btn-primary-hover-bg);
}

.pm__btn--secondary {
	background: var(--cc-btn-secondary-bg);
	color: var(--cc-btn-secondary-color);
}

.pm__btn--secondary:hover {
	background: var(--cc-btn-secondary-hover-bg);
}

/* ================================================
   6. Responsive
   ================================================ */

@media (max-width: 640px) {
	.cm {
		max-width: calc(100% - 1rem);
		margin: 0.5rem;
	}

	.cm--bar .cm__body {
		flex-direction: column;
		align-items: stretch;
	}

	.pm {
		width: calc(100% - 1rem);
		max-height: calc(100vh - 2rem);
	}

	.pm--right {
		width: 100%;
		border-radius: 0;
	}

	.pm__footer {
		flex-direction: column;
	}

	.pm__btn {
		width: 100%;
	}
}


.cm__btn[data-role="all"] {
    background: #F79420 !important;
    border-color: #F79420 !important;
    color: #fff;
}
.cm__btn[data-role="all"]:hover {
    background: #54595F !important;
    border-color: #54595F !important;
}

