/* Muncly Cookies — "Quiet Card" (Option A). Namespaced .mn-ck-*.
   Theme tokens with hard fallbacks so the UI survives outside the theme. */

.mn-ck-banner,
.mn-ck-modal,
.mn-ck-toast {
	font-family: var(--mn-font-body, 'DM Sans', system-ui, sans-serif);
	line-height: 1.6;
	box-sizing: border-box;
}
.mn-ck-banner *, .mn-ck-modal *, .mn-ck-overlay * { box-sizing: border-box; }

/* ---------- Banner ---------- */
.mn-ck-banner {
	position: fixed; left: 22px; bottom: 22px; z-index: 99500;
	width: min(384px, calc(100vw - 24px));
	background: linear-gradient(158deg, rgba(46,82,72,.62) 0%, rgba(33,61,54,.78) 100%);
	-webkit-backdrop-filter: blur(16px); backdrop-filter: blur(16px);
	border: 1px solid rgba(222,213,190,.12); border-radius: 16px;
	box-shadow: 0 28px 70px rgba(0,0,0,.5), 0 2px 8px rgba(0,0,0,.3), inset 0 1px 0 rgba(222,213,190,.07);
	padding: 24px 24px 18px;
	opacity: 0; transform: translateY(18px); visibility: hidden;
	transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1), visibility 0s linear .55s;
}
.mn-ck-banner.is-visible {
	opacity: 1; transform: translateY(0); visibility: visible;
	transition: opacity .55s cubic-bezier(.22,1,.36,1), transform .55s cubic-bezier(.22,1,.36,1);
}
.mn-ck-banner-title {
	font-family: var(--mn-font-display, 'Newsreader', Georgia, serif);
	font-weight: 500; font-size: 20px; line-height: 1.25;
	color: var(--mn-linen, #DED5BE); letter-spacing: .005em; margin: 0 0 8px;
}
.mn-ck-banner-copy { font-size: 13.8px; color: rgba(222,213,190,.65); margin: 0 0 18px; }
.mn-ck-banner-copy a {
	color: rgba(222,213,190,.85); text-decoration: none;
	border-bottom: 1px solid rgba(222,213,190,.35);
	transition: color .2s, border-color .2s;
}
.mn-ck-banner-copy a:hover { color: var(--mn-linen, #DED5BE); border-color: var(--mn-linen, #DED5BE); }

.mn-ck-actions { display: flex; gap: 10px; margin-bottom: 14px; }
button.mn-ck-btn {
	flex: 1; font-family: inherit; font-size: 14px; font-weight: 500;
	padding: 11px 8px; border-radius: 10px; cursor: pointer;
	text-align: center; white-space: nowrap; line-height: 1.3;
	transition: background .22s, border-color .22s, color .22s, transform .22s;
}
button.mn-ck-btn:active { transform: scale(.97); }
button.mn-ck-btn-accept { background: var(--mn-orange, #E8440A); color: #fff; border: 1px solid var(--mn-orange, #E8440A); }
button.mn-ck-btn-accept:hover { background: var(--mn-orange-hover, #C93A08); border-color: var(--mn-orange-hover, #C93A08); }
button.mn-ck-btn-reject { background: transparent; color: var(--mn-linen, #DED5BE); border: 1px solid rgba(222,213,190,.3); }
button.mn-ck-btn-reject:hover { border-color: rgba(222,213,190,.6); background: rgba(222,213,190,.06); }

.mn-ck-settings-row { text-align: center; border-top: 1px solid rgba(222,213,190,.08); padding-top: 12px; }
button.mn-ck-settings-link {
	font-family: inherit; font-size: 13.5px; font-weight: 400; cursor: pointer;
	color: rgba(222,213,190,.45); background: none; border: 0; padding: 0;
	border-bottom: 1px solid transparent; transition: color .2s, border-color .2s;
}
button.mn-ck-settings-link:hover { color: rgba(222,213,190,.85); border-color: rgba(222,213,190,.4); }

@media (max-width: 560px) { .mn-ck-banner { left: 12px; right: 12px; bottom: 12px; width: auto; } }
@media (max-width: 380px) { .mn-ck-actions { flex-direction: column; } button.mn-ck-btn { white-space: normal; } }

/* ---------- Overlay + modal ---------- */
.mn-ck-overlay {
	position: fixed; inset: 0; z-index: 99600;
	background: rgba(12,22,19,.66);
	-webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px);
	display: flex; align-items: center; justify-content: center; padding: 20px;
	opacity: 0; visibility: hidden;
	transition: opacity .35s ease, visibility 0s linear .35s;
}
.mn-ck-overlay.is-open { opacity: 1; visibility: visible; transition: opacity .35s ease; }
.mn-ck-modal {
	background: var(--mn-dropdown, #1E3C34); /* fully opaque, always */
	border: 1px solid rgba(222,213,190,.12); border-radius: 16px;
	width: min(540px, 100%); max-height: calc(100vh - 40px);
	display: flex; flex-direction: column; overflow: hidden;
	box-shadow: 0 40px 100px rgba(0,0,0,.6), inset 0 1px 0 rgba(222,213,190,.07);
	transform: translateY(16px) scale(.985);
	transition: transform .4s cubic-bezier(.22,1,.36,1);
}
.mn-ck-overlay.is-open .mn-ck-modal { transform: translateY(0) scale(1); }

.mn-ck-head {
	display: flex; align-items: flex-start; justify-content: space-between; gap: 16px;
	padding: 26px 28px 20px; border-bottom: 1px solid rgba(222,213,190,.09); flex-shrink: 0;
}
.mn-ck-modal-title {
	font-family: var(--mn-font-display, 'Newsreader', Georgia, serif);
	font-weight: 500; font-size: 24px; line-height: 1.2; color: var(--mn-linen, #DED5BE); margin: 0;
}
.mn-ck-modal-sub { font-size: 13.5px; color: rgba(222,213,190,.65); margin: 6px 0 0; max-width: 42ch; }
button.mn-ck-close {
	flex-shrink: 0; width: 34px; height: 34px; border-radius: 9px; cursor: pointer;
	display: flex; align-items: center; justify-content: center;
	color: rgba(222,213,190,.65); background: none; border: 1px solid rgba(222,213,190,.14);
	transition: color .2s, border-color .2s, background .2s;
}
button.mn-ck-close:hover { color: var(--mn-linen, #DED5BE); border-color: rgba(222,213,190,.4); background: rgba(222,213,190,.06); }
button.mn-ck-close svg { width: 14px; height: 14px; }

.mn-ck-body { padding: 20px 28px 8px; overflow-y: auto; flex-grow: 1; }
.mn-ck-body::-webkit-scrollbar { width: 8px; }
.mn-ck-body::-webkit-scrollbar-thumb { background: rgba(222,213,190,.15); border-radius: 8px; }
.mn-ck-body::-webkit-scrollbar-track { background: transparent; }

.mn-ck-cat {
	background: linear-gradient(155deg, rgba(46,82,72,.4) 0%, rgba(42,74,68,.28) 100%);
	border: 1px solid rgba(222,213,190,.12); border-radius: 14px;
	padding: 18px 20px; margin-bottom: 14px;
	transition: border-color .3s;
}
.mn-ck-cat:hover { border-color: rgba(222,213,190,.2); }
.mn-ck-cat-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 18px; }
.mn-ck-cat-title {
	font-family: inherit; font-size: 15.5px; font-weight: 500; color: var(--mn-linen, #DED5BE);
	display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin: 0; line-height: 1.4;
}
.mn-ck-badge {
	font-size: 11px; font-weight: 500; letter-spacing: .08em; text-transform: uppercase;
	color: rgba(222,213,190,.65); background: rgba(222,213,190,.09);
	border: 1px solid rgba(222,213,190,.16);
	padding: 3px 9px; border-radius: 999px; white-space: nowrap;
}
.mn-ck-cat-tools { font-size: 12.5px; color: rgba(222,213,190,.45); margin: 4px 0 0; letter-spacing: .01em; }
.mn-ck-cat-desc { font-size: 13.8px; color: rgba(222,213,190,.65); margin: 12px 0 0; }

/* ---------- Toggle ---------- */
button.mn-ck-switch {
	position: relative; flex-shrink: 0; width: 46px; height: 26px; border-radius: 999px; cursor: pointer;
	background: rgba(222,213,190,.12); border: 1px solid rgba(222,213,190,.2); padding: 0;
	transition: background .28s cubic-bezier(.22,1,.36,1), border-color .28s cubic-bezier(.22,1,.36,1);
	margin-top: 2px;
}
.mn-ck-knob {
	position: absolute; top: 50%; left: 3px; transform: translateY(-50%);
	width: 18px; height: 18px; border-radius: 50%;
	background: var(--mn-linen, #DED5BE);
	box-shadow: 0 2px 5px rgba(0,0,0,.35);
	transition: left .28s cubic-bezier(.22,1,.36,1), background .28s;
}
button.mn-ck-switch:hover { border-color: rgba(222,213,190,.45); }
button.mn-ck-switch[aria-checked="true"] { background: var(--mn-orange, #E8440A); border-color: var(--mn-orange, #E8440A); }
button.mn-ck-switch[aria-checked="true"] .mn-ck-knob { left: 23px; background: #fff; }
button.mn-ck-switch:disabled { cursor: not-allowed; background: rgba(46,82,72,.6); border-color: rgba(222,213,190,.14); }
button.mn-ck-switch:disabled .mn-ck-knob { left: 23px; background: var(--mn-linen, #DED5BE); opacity: .85; }
button.mn-ck-switch:disabled:hover { border-color: rgba(222,213,190,.14); }

/* ---------- Modal footer ---------- */
.mn-ck-foot {
	display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap;
	padding: 18px 28px 24px; border-top: 1px solid rgba(222,213,190,.09); flex-shrink: 0;
}
.mn-ck-privacy-link {
	font-size: 13.5px; color: rgba(222,213,190,.45); text-decoration: none;
	border-bottom: 1px solid transparent; transition: color .2s, border-color .2s;
}
.mn-ck-privacy-link:hover { color: rgba(222,213,190,.85); border-color: rgba(222,213,190,.4); }
.mn-ck-foot-btns { display: flex; gap: 10px; }
.mn-ck-foot-btns button.mn-ck-btn { flex: none; padding: 11px 22px; }
@media (max-width: 520px) {
	.mn-ck-foot { flex-direction: column-reverse; align-items: stretch; }
	.mn-ck-foot-btns { flex-direction: column; }
	.mn-ck-foot-btns button.mn-ck-btn { width: 100%; }
	.mn-ck-privacy-link { text-align: center; }
}

/* ---------- Toast ---------- */
.mn-ck-toast {
	position: fixed; left: 22px; bottom: 22px; z-index: 99550;
	font-size: 13.5px; color: rgba(222,213,190,.85);
	background: var(--mn-forest, #213D36); border: 1px solid rgba(222,213,190,.12); border-radius: 10px;
	padding: 11px 18px; box-shadow: 0 14px 36px rgba(0,0,0,.4);
	display: flex; align-items: center; gap: 10px;
	opacity: 0; transform: translateY(8px); pointer-events: none;
	transition: opacity .4s cubic-bezier(.22,1,.36,1), transform .4s cubic-bezier(.22,1,.36,1);
}
.mn-ck-toast.is-visible { opacity: 1; transform: translateY(0); }
@media (max-width: 560px) { .mn-ck-toast { left: 12px; bottom: 12px; } }

/* [hidden] handling: visibility is driven by classes, [hidden] only blocks
   the pre-JS flash. Once JS boots it removes the attribute. */
.mn-ck-banner[hidden], .mn-ck-overlay[hidden], .mn-ck-toast[hidden] { display: none; }

body.mn-ck-modal-open { overflow: hidden; }

@media (prefers-reduced-motion: reduce) {
	.mn-ck-banner, .mn-ck-overlay, .mn-ck-modal, .mn-ck-toast, .mn-ck-knob, button.mn-ck-switch {
		transition-duration: .01ms !important;
	}
}

/* ---------- Cookie declaration table (shortcode) ---------- */
.mn-ck-declaration { overflow-x: auto; margin: 24px 0; }
.mn-ck-declaration table { width: 100%; border-collapse: collapse; font-size: 14.5px; }
.mn-ck-declaration th, .mn-ck-declaration td {
	text-align: left; padding: 10px 14px; vertical-align: top;
	border-bottom: 1px solid rgba(222,213,190,.12);
}
.mn-ck-declaration th {
	font-weight: 600; color: var(--mn-linen, #DED5BE);
	font-size: 12.5px; text-transform: uppercase; letter-spacing: .06em;
}
.mn-ck-declaration td { color: rgba(222,213,190,.75); }
.mn-ck-declaration caption {
	caption-side: top; text-align: left; font-weight: 600;
	color: var(--mn-linen, #DED5BE); padding: 0 0 10px;
	font-family: var(--mn-font-display, 'Newsreader', Georgia, serif); font-size: 19px;
}
