/* Cookie Consent WP — styles */

/* ── Design tokens ──────────────────────────────────────────────────────────── */
/*
   When CurbCut (OAWP) is active its --oawp-* vars are set on :root, so ours
   inherit from them automatically. Fallbacks keep us self-contained when
   CurbCut is absent.
*/
:root {
	--cckwp-accent:        var(--oawp-accent,         #1a73e8);
	--cckwp-accent-dark:   var(--oawp-accent-dark,    #1557b0);
	--cckwp-on-accent:     var(--oawp-on-accent,      #ffffff);
	--cckwp-surface:       var(--oawp-surface,        #ffffff);
	--cckwp-surface-2:     var(--oawp-surface-raised, #f8fafc);
	--cckwp-border:        var(--oawp-border,         #e2e8f0);
	--cckwp-text:          var(--oawp-text-primary,   #0f172a);
	--cckwp-text-muted:    var(--oawp-text-secondary, #64748b);
	--cckwp-radius:        var(--oawp-radius-panel,   16px);
	--cckwp-shadow:        var(--oawp-shadow-panel,   0 25px 50px -12px rgba(0,0,0,.25), 0 0 0 1px rgba(0,0,0,.05));
	--cckwp-shadow-sm:     var(--oawp-shadow-btn,     0 4px 16px rgba(26,115,232,.35));
	--cckwp-toggle-off:    #bdc1c6;
	--cckwp-toggle-on:     var(--oawp-switch-on,      #22c55e);
	--cckwp-radius-btn:    var(--oawp-radius-control, 10px);
	--cckwp-z:             99998; /* one below CurbCut's 99999 */
}

/* Dark mode intentionally omitted — CurbCut uses a fixed light theme and we
   match it. The --oawp-* vars on :root are always light, so our var() references
   inherit the correct values regardless of system colour scheme. */

/* ── Root container ─────────────────────────────────────────────────────────── */
#cckwp-root {
	position: fixed;
	z-index: var(--cckwp-z);
	bottom: 1.5rem;
	right:  1.5rem;
}

#cckwp-root.pos-bottom-right { bottom: 1.5rem; right:  1.5rem; left: auto; top: auto; }
#cckwp-root.pos-bottom-left  { bottom: 1.5rem; left:   1.5rem; right: auto; top: auto; }
#cckwp-root.pos-top-right    { top:    1.5rem; right:  1.5rem; bottom: auto; left: auto; }
#cckwp-root.pos-top-left     { top:    1.5rem; left:   1.5rem; bottom: auto; right: auto; }

/* ── hidden attribute safety (some themes override [hidden]) ────────────────── */
#cckwp-banner[hidden],
#cckwp-panel[hidden],
#cckwp-bubble[hidden],
#cckwp-gpc-notice[hidden],
#cckwp-ccpa-section[hidden],
#cckwp-panel-body[hidden],
#cckwp-about[hidden] { display: none !important; }

/* ── Screen-reader only ─────────────────────────────────────────────────────── */
.cckwp-sr-only {
	position: absolute;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden;
	clip: rect(0,0,0,0);
	white-space: nowrap;
	border: 0;
}

/* ── Bubble button ──────────────────────────────────────────────────────────── */
#cckwp-bubble-wrap {
	position: relative;
	width: 60px;
	height: 60px;
	display: flex;
	align-items: center;
	justify-content: center;
}

#cckwp-bubble {
	all: unset;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: transform .18s ease, filter .18s ease;
	-webkit-tap-highlight-color: transparent;
	filter: drop-shadow(0 2px 6px rgba(0,0,0,.35));
}

#cckwp-bubble:hover {
	transform: scale(1.12);
	filter: drop-shadow(0 4px 10px rgba(0,0,0,.45));
}

#cckwp-bubble:focus-visible {
	outline: 3px solid #ffbf00;
	outline-offset: 4px;
}

#cckwp-bubble:active {
	transform: scale(0.95);
}

/* ── CurbCut docking — bubble stacking ──────────────────────────────────────── */
/*
   CurbCut (#oawp-root) sits at 1.5rem from its edge at z-index 99999.
   We offset our button by 60px (CurbCut button height) + 12px gap.
   The docking class is applied by JS when #oawp-root is detected.
*/

body.cckwp-docked-bottom-right #cckwp-root,
body.cckwp-docked-bottom-left  #cckwp-root {
	bottom: calc(1.5rem + 60px + 12px);
}

body.cckwp-docked-top-right #cckwp-root,
body.cckwp-docked-top-left  #cckwp-root {
	top: calc(1.5rem + 60px + 12px);
}

/* Keep horizontal alignment matching CurbCut */
body.cckwp-docked-bottom-right #cckwp-root { right: 1.5rem; left: auto; }
body.cckwp-docked-bottom-left  #cckwp-root { left:  1.5rem; right: auto; }
body.cckwp-docked-top-right    #cckwp-root { right: 1.5rem; left: auto; }
body.cckwp-docked-top-left     #cckwp-root { left:  1.5rem; right: auto; }

/* ── CurbCut panel-open dodge ───────────────────────────────────────────────── */
/*
   When our panel is open (right side), slide CurbCut to the opposite corner
   so it doesn't sit underneath the panel edge.
*/
#oawp-root {
	transition: left .28s cubic-bezier(.4,0,.2,1), right .28s cubic-bezier(.4,0,.2,1) !important;
}

/* Panel on right → CurbCut moves to left */
body.cckwp-panel-open.cckwp-docked-bottom-right #oawp-root,
body.cckwp-panel-open.cckwp-docked-top-right    #oawp-root,
body.cckwp-panel-open:not([class*="cckwp-docked"]) #oawp-root {
	right: auto !important;
	left:  1.5rem !important;
}

/* Panel on left → CurbCut moves to right */
body.cckwp-panel-open.cckwp-docked-bottom-left #oawp-root,
body.cckwp-panel-open.cckwp-docked-top-left    #oawp-root {
	left:  auto !important;
	right: 1.5rem !important;
}

/* ── About / changelog panel ────────────────────────────────────────────────── */
#cckwp-about {
	flex: 1;
	overflow-y: auto;
	padding: 1rem 1.25rem .5rem;
	-webkit-overflow-scrolling: touch;
}

.cckwp-about-version {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding-bottom: .75rem;
	margin-bottom: 1rem;
	border-bottom: 1px solid var(--cckwp-border);
}

.cckwp-about-name {
	font-size: .9375rem;
	font-weight: 700;
	color: var(--cckwp-text);
}

.cckwp-about-ver {
	font-size: .72rem;
	font-weight: 700;
	color: var(--cckwp-on-accent);
	background: var(--cckwp-accent);
	padding: .15em .5em;
	border-radius: 4px;
	letter-spacing: .02em;
}

.cckwp-about-changelog-title {
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--cckwp-text-muted);
	margin: 0 0 .75rem;
}

.cckwp-about-release {
	margin-bottom: 1rem;
}

.cckwp-about-release > strong {
	display: block;
	font-size: .8125rem;
	color: var(--cckwp-text);
	margin-bottom: .35rem;
}

.cckwp-about-release ul {
	margin: 0;
	padding-left: 1.25rem;
}

.cckwp-about-release li {
	font-size: .78rem;
	color: var(--cckwp-text-muted);
	line-height: 1.6;
	margin-bottom: .15rem;
}

/* ── Consent banner ─────────────────────────────────────────────────────────── */
#cckwp-banner {
	position: fixed;
	left: 0;
	right: 0;
	z-index: var(--cckwp-z);
	background: var(--cckwp-surface);
	border-top: 1px solid var(--cckwp-border);
	box-shadow: 0 -4px 16px rgba(0,0,0,0.10);
	padding: 1.25rem 1.5rem;
	animation: cckwp-slide-up .25s ease;
}

#cckwp-banner.banner-bottom {
	bottom: 0;
	border-top: 1px solid var(--cckwp-border);
	border-bottom: none;
	animation: cckwp-slide-up .25s ease;
}

#cckwp-banner.banner-top {
	top: 0;
	border-bottom: 1px solid var(--cckwp-border);
	border-top: none;
	animation: cckwp-slide-down .25s ease;
}

@keyframes cckwp-slide-up   { from { transform: translateY(100%); } to { transform: translateY(0); } }
@keyframes cckwp-slide-down { from { transform: translateY(-100%); } to { transform: translateY(0); } }

.cckwp-banner-inner {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	max-width: 1200px;
	margin: 0 auto;
	flex-wrap: wrap;
}

.cckwp-banner-text {
	flex: 1 1 300px;
}

.cckwp-banner-heading {
	margin: 0 0 .25rem;
	font-size: 1rem;
	font-weight: 700;
	color: var(--cckwp-text);
	line-height: 1.3;
}

.cckwp-banner-body {
	margin: 0 0 .5rem;
	font-size: .875rem;
	color: var(--cckwp-text-muted);
	line-height: 1.5;
}

.cckwp-banner-links {
	font-size: .8125rem;
}

.cckwp-banner-links a {
	color: var(--cckwp-accent);
	text-decoration: underline;
}

.cckwp-banner-actions {
	display: flex;
	gap: .625rem;
	flex-wrap: wrap;
	align-items: center;
	flex-shrink: 0;
}

/* ── Preference panel ───────────────────────────────────────────────────────── */
#cckwp-panel {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: 400px;
	max-width: 94vw;
	z-index: calc(var(--cckwp-z) + 1);
	background: var(--cckwp-surface);
	font-family: -apple-system, BlinkMacSystemFont, "Inter", "Segoe UI", Roboto, sans-serif;
	box-shadow: var(--cckwp-shadow);
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: var(--cckwp-radius) 0 0 var(--cckwp-radius);
	transform: translateX(100%);
	transition: transform .3s cubic-bezier(.4,0,.2,1);
}

#cckwp-panel:not([hidden]) {
	transform: translateX(0);
}

/* Left-side panel when button is on the left */
body.cckwp-docked-bottom-left  #cckwp-panel,
body.cckwp-docked-top-left     #cckwp-panel,
#cckwp-root.pos-bottom-left    #cckwp-panel,
#cckwp-root.pos-top-left       #cckwp-panel {
	left: 0;
	right: auto;
	border-radius: 0 var(--cckwp-radius) var(--cckwp-radius) 0;
	box-shadow: var(--cckwp-shadow);
	transform: translateX(-100%);
}

body.cckwp-docked-bottom-left  #cckwp-panel:not([hidden]),
body.cckwp-docked-top-left     #cckwp-panel:not([hidden]),
#cckwp-root.pos-bottom-left    #cckwp-panel:not([hidden]),
#cckwp-root.pos-top-left       #cckwp-panel:not([hidden]) {
	transform: translateX(0);
}

.cckwp-panel-header {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: 1.25rem 1rem 1rem;
	background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%);
	flex-shrink: 0;
	position: relative;
	overflow: hidden;
}

/* Decorative glow blobs — mirrors CurbCut */
.cckwp-panel-header::before,
.cckwp-panel-header::after {
	content: '';
	position: absolute;
	border-radius: 50%;
	filter: blur(30px);
	opacity: .4;
	pointer-events: none;
}
.cckwp-panel-header::before {
	width: 100px; height: 100px;
	background: var(--cckwp-accent);
	top: -30px; right: 20px;
}
.cckwp-panel-header::after {
	width: 80px; height: 80px;
	background: #06b6d4;
	bottom: -20px; left: 30px;
}

/* About/title button — left side, no chrome */
.cckwp-about-btn {
	display: flex !important;
	align-items: center !important;
	gap: .5rem !important;
	flex: 1 !important;
	min-width: 0 !important;
	background: none !important;
	border: none !important;
	padding: 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
	cursor: pointer !important;
	text-align: left !important;
	border-radius: 8px !important;
	position: relative;
	z-index: 1;
	text-transform: none !important;
	letter-spacing: normal !important;
}
.cckwp-about-btn:focus-visible {
	outline: 2px solid rgba(255,255,255,.6) !important;
	outline-offset: 3px !important;
}

.cckwp-header-icon {
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	border-radius: 10px;
	background: rgba(255,255,255,.12);
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0;
	position: relative;
	z-index: 1;
}

.cckwp-header-text {
	flex: 1;
	min-width: 0;
	position: relative;
	z-index: 1;
}

.cckwp-panel-title {
	display: block;
	font-size: .95rem;
	font-weight: 700;
	color: #fff;
	letter-spacing: -.01em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cckwp-panel-header-actions {
	display: flex;
	gap: .35rem;
	position: relative;
	z-index: 1;
	align-items: center;
}

/* Header icon buttons (close etc.) */
.cckwp-header-btn {
	background: rgba(255,255,255,.1) !important;
	border: 1px solid rgba(255,255,255,.15) !important;
	border-radius: 8px !important;
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	min-height: 32px !important;
	max-width: 32px !important;
	max-height: 32px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	color: rgba(255,255,255,.8) !important;
	font-size: 1rem !important;
	padding: 0 !important;
	margin: 0 !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
	transition: background .15s, color .15s;
	flex-shrink: 0 !important;
	box-sizing: border-box !important;
}
.cckwp-header-btn:hover {
	background: rgba(255,255,255,.2) !important;
	color: #fff !important;
}
.cckwp-header-btn:focus-visible {
	outline: 2px solid #ffbf00 !important;
	outline-offset: 2px !important;
}

.cckwp-panel-body {
	flex: 1;
	overflow-y: auto;
	padding: .75rem 0 1rem;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: thin;
	scrollbar-color: var(--cckwp-border) transparent;
}

.cckwp-panel-body::-webkit-scrollbar { width: 4px; }
.cckwp-panel-body::-webkit-scrollbar-track { background: transparent; }
.cckwp-panel-body::-webkit-scrollbar-thumb { background: var(--cckwp-border); border-radius: 2px; }

.cckwp-panel-intro {
	margin: 0 0 1rem;
	padding: 0 1rem;
	font-size: .875rem;
	color: var(--cckwp-text-muted);
	line-height: 1.5;
}

/* ── Section ────────────────────────────────────────────────────────────────── */
.cckwp-section {
	padding: .5rem 0 .75rem;
}

.cckwp-section + .cckwp-section {
	border-top: 1px solid var(--cckwp-border);
}

.cckwp-section-header {
	display: flex;
	align-items: center;
	gap: .5rem;
	padding: .25rem 1rem .6rem;
}

.cckwp-section-dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: var(--cckwp-accent);
	flex-shrink: 0;
}

.cckwp-section-title {
	margin: 0;
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--cckwp-text-muted);
}

.cckwp-panel-footer {
	padding: 1rem 1.25rem;
	border-top: 1px solid var(--cckwp-border);
	background: var(--cckwp-surface-2);
	flex-shrink: 0;
}

.cckwp-consent-date {
	margin: 0 0 .75rem;
	font-size: .75rem;
	color: var(--cckwp-text-muted);
}

.cckwp-panel-footer-links {
	font-size: .8125rem;
	margin-bottom: .875rem;
}

.cckwp-panel-footer-links a {
	color: var(--cckwp-accent);
	text-decoration: underline;
}

.cckwp-panel-actions {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.cckwp-compliance-badges {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	margin-top: .875rem;
}

.cckwp-badge {
	font-size: .65rem;
	font-weight: 700;
	color: #fff;
	background: #16a34a;
	border-radius: 4px;
	padding: .2em .5em;
	letter-spacing: .04em;
}

/* ── Category rows ──────────────────────────────────────────────────────────── */
.cckwp-categories {
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.cckwp-cat-row {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding: .6em .75em;
	background: var(--cckwp-surface-2);
	border: 1px solid transparent;
	border-radius: var(--cckwp-radius-btn);
	margin: .2rem .75rem;
	transition: background .15s, border-color .15s;
}

.cckwp-cat-row:hover {
	background: #eef2ff;
	border-color: #c7d2fe;
}

.cckwp-cat-info {
	flex: 1;
}

.cckwp-cat-name {
	display: block;
	font-size: .9375rem;
	color: var(--cckwp-text);
	margin-bottom: .25rem;
}

.cckwp-cat-desc {
	margin: 0;
	font-size: .8125rem;
	color: var(--cckwp-text-muted);
	line-height: 1.5;
}

.cckwp-cat-control {
	flex-shrink: 0;
	padding-top: .1rem;
}

/* Toggle switch — sized and animated to match CurbCut */
.cckwp-toggle {
	all: unset;
	position: relative !important;
	display: inline-block !important;
	width: 38px !important;
	height: 22px !important;
	min-width: 0 !important;
	padding: 0 !important;
	border-radius: 11px !important;
	border: none !important;
	background: #cbd5e1 !important;
	cursor: pointer !important;
	flex-shrink: 0 !important;
	vertical-align: middle !important;
	text-transform: none !important;
	box-shadow: none !important;
	transition: background .2s;
}

.cckwp-toggle::after {
	content: '' !important;
	position: absolute !important;
	top: 3px !important;
	left: 3px !important;
	width: 16px !important;
	height: 16px !important;
	border-radius: 50% !important;
	background: #fff !important;
	box-shadow: 0 1px 4px rgba(0,0,0,.2) !important;
	transition: transform .2s cubic-bezier(.34,1.56,.64,1);
}

.cckwp-toggle.is-on {
	background: var(--cckwp-toggle-on) !important;
}

.cckwp-toggle.is-on::after {
	transform: translateX(16px) !important;
}

.cckwp-toggle:focus-visible {
	outline: 3px solid #ffbf00 !important;
	outline-offset: 3px;
}

.cckwp-toggle-always {
	display: inline-block;
	font-size: .75rem;
	font-weight: 600;
	color: var(--cckwp-accent);
	text-transform: uppercase;
	letter-spacing: .04em;
	padding: .25rem .5rem;
	background: color-mix(in srgb, var(--cckwp-accent) 12%, transparent);
	border-radius: 4px;
	white-space: nowrap;
}

/* ── Divider ────────────────────────────────────────────────────────────────── */
.cckwp-divider {
	border: none;
	border-top: 1px solid var(--cckwp-border);
	margin: .875rem 0;
}

.cckwp-panel-footer .cckwp-divider {
	margin: .75rem 0;
}

/* ── CCPA section ───────────────────────────────────────────────────────────── */
.cckwp-ccpa-section {}

.cckwp-ccpa-row {
	display: flex;
	flex-direction: column;
	gap: .625rem;
}

.cckwp-ccpa-label {
	font-size: .875rem;
	font-weight: 600;
	color: var(--cckwp-text);
}

.cckwp-ccpa-row .cckwp-btn {
	align-self: flex-start;
	white-space: normal;
	text-align: left;
	line-height: 1.3;
}

/* ── Notice ─────────────────────────────────────────────────────────────────── */
.cckwp-notice {
	display: flex;
	align-items: flex-start;
	gap: .5rem;
	padding: .75rem 1rem;
	border-radius: 8px;
	font-size: .8125rem;
	line-height: 1.5;
	margin: 0 .75rem 1rem;
}

.cckwp-notice-info {
	background: color-mix(in srgb, var(--cckwp-accent) 10%, transparent);
	color: var(--cckwp-text);
	border: 1px solid color-mix(in srgb, var(--cckwp-accent) 30%, transparent);
}

.cckwp-notice svg {
	flex-shrink: 0;
	margin-top: .1rem;
	color: var(--cckwp-accent);
}

/* ── Buttons ────────────────────────────────────────────────────────────────── */
.cckwp-btn {
	all: unset;
	box-sizing: border-box !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: .5rem 1.125rem !important;
	border-radius: var(--cckwp-radius-btn) !important;
	font-size: .875rem !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	text-transform: none !important;
	letter-spacing: normal !important;
	text-decoration: none !important;
	line-height: 1.4 !important;
	transition: background .15s ease, box-shadow .15s ease, transform .1s ease;
	-webkit-tap-highlight-color: transparent;
}

.cckwp-btn:focus-visible {
	outline: 3px solid #ffbf00 !important;
	outline-offset: 3px;
}

.cckwp-btn:active { transform: scale(0.97); }

.cckwp-btn-primary {
	background: var(--cckwp-accent) !important;
	color: var(--cckwp-on-accent) !important;
	border: none !important;
	box-shadow: none !important;
}
.cckwp-btn-primary:hover  { background: var(--cckwp-accent-dark) !important; }

.cckwp-btn-secondary {
	background: var(--cckwp-surface-2) !important;
	color: var(--cckwp-text) !important;
	border: 1px solid var(--cckwp-border) !important;
	box-shadow: none !important;
}
.cckwp-btn-secondary:hover { background: var(--cckwp-border) !important; }

.cckwp-btn-ghost {
	color: var(--cckwp-accent) !important;
	text-decoration: underline !important;
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	padding-left: .5rem !important;
	padding-right: .5rem !important;
}
.cckwp-btn-ghost:hover { color: var(--cckwp-accent-dark) !important; }

.cckwp-btn-sm { padding: .375rem .75rem !important; font-size: .8125rem !important; }

.cckwp-btn-outline {
	border: 1px solid var(--cckwp-accent) !important;
	color: var(--cckwp-accent) !important;
	background: transparent !important;
	box-shadow: none !important;
}
.cckwp-btn-outline:hover         { background: color-mix(in srgb, var(--cckwp-accent) 10%, transparent) !important; }
.cckwp-btn-outline[aria-pressed="true"] {
	background: var(--cckwp-accent) !important;
	color: var(--cckwp-on-accent) !important;
}

/* ── Responsive ─────────────────────────────────────────────────────────────── */
@media (max-width: 600px) {
	#cckwp-banner { padding: 1rem; }

	.cckwp-banner-inner {
		flex-direction: column;
		align-items: stretch;
		gap: .875rem;
	}

	.cckwp-banner-actions {
		flex-direction: column;
	}

	.cckwp-btn { width: 100%; }

	#cckwp-panel { width: 100%; }
}

/* ── High-contrast / forced-colors ─────────────────────────────────────────── */
@media (forced-colors: active) {
	#cckwp-bubble        { forced-color-adjust: none; }
	.cckwp-toggle        { forced-color-adjust: none; }
	.cckwp-btn-primary   { forced-color-adjust: none; }
}

/* ── Print ──────────────────────────────────────────────────────────────────── */
@media print {
	#cckwp-root,
	#cckwp-banner { display: none !important; }
}

/* ── Reduced motion ─────────────────────────────────────────────────────────── */
@media (prefers-reduced-motion: reduce) {
	#cckwp-bubble,
	#cckwp-panel,
	#cckwp-banner,
	.cckwp-toggle,
	.cckwp-toggle::after,
	.cckwp-btn { transition: none; animation: none; }
}

/* ── [cookie_declaration] shortcode ─────────────────────────────────────────── */
.cckwp-cookie-declaration {
	font-size: 1rem;
	line-height: 1.6;
}

.cckwp-decl-section {
	margin-bottom: 2.5rem;
}

.cckwp-decl-heading {
	font-size: 1.25rem;
	font-weight: 700;
	margin: 0 0 .5rem;
	padding-bottom: .4rem;
	border-bottom: 2px solid var(--cckwp-accent, #1a73e8);
	display: inline-block;
}

.cckwp-decl-desc {
	margin: 0 0 1rem;
	color: #555;
	font-size: .9375rem;
}

.cckwp-decl-table-wrap {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	border-radius: 6px;
	border: 1px solid #ddd;
}

.cckwp-decl-table {
	width: 100%;
	border-collapse: collapse;
	font-size: .875rem;
	background: #fff;
}

.cckwp-decl-table thead {
	background: #f5f5f5;
}

.cckwp-decl-table th,
.cckwp-decl-table td {
	padding: .625rem .875rem;
	text-align: left;
	border-bottom: 1px solid #e8e8e8;
	vertical-align: top;
}

.cckwp-decl-table th {
	font-weight: 600;
	font-size: .8125rem;
	text-transform: uppercase;
	letter-spacing: .04em;
	color: #444;
	white-space: nowrap;
}

.cckwp-decl-table tbody tr:last-child td {
	border-bottom: none;
}

.cckwp-decl-table tbody tr:hover {
	background: #fafafa;
}

.cckwp-decl-table code {
	font-size: .8125rem;
	background: #f0f0f0;
	padding: .1em .35em;
	border-radius: 3px;
	word-break: break-all;
}

.cckwp-decl-empty {
	color: #888;
	font-size: .9375rem;
	margin: 0;
}

/* Responsive stacked layout for narrow screens */
@media (max-width: 600px) {
	.cckwp-decl-table thead {
		display: none;
	}

	.cckwp-decl-table,
	.cckwp-decl-table tbody,
	.cckwp-decl-table tr,
	.cckwp-decl-table td {
		display: block;
		width: 100%;
	}

	.cckwp-decl-table tr {
		border-bottom: 1px solid #e0e0e0;
		padding: .625rem 0;
	}

	.cckwp-decl-table td {
		border: none;
		padding: .25rem .875rem;
	}

	.cckwp-decl-table td::before {
		content: attr(data-label) ': ';
		font-weight: 600;
		font-size: .75rem;
		text-transform: uppercase;
		letter-spacing: .04em;
		color: #666;
		display: block;
		margin-bottom: .1rem;
	}
}

/* Dark mode for declaration table also omitted to match CurbCut's fixed light theme. */
