/* ==========================================================================
   Dark mode. Kadence emits its palette as --global-palette1..9 on :root; the
   html[data-theme] selector wins on specificity and swaps the values.
   ========================================================================== */
html[data-theme="dark"] {
	--global-palette1: #4cc9d4;
	--global-palette2: #7fdce4;
	--global-palette3: #f5f7fa;
	--global-palette4: #e4e7eb;
	--global-palette5: #cbd2d9;
	--global-palette6: #7b8794;
	--global-palette7: #323f4b;
	--global-palette8: #121417;
	--global-palette9: #1f2933;
	color-scheme: dark;
}
html[data-theme="light"] {
	color-scheme: light;
}
html[data-theme="dark"] img:not(.rsp-hero-img) {
	filter: brightness(.92);
}

/* ==========================================================================
   Header: hero row with the site title on the picture
   ========================================================================== */
#masthead .site-main-header-wrap .site-header-row {
	position: relative;
}
#masthead .site-main-header-wrap::before,
#mobile-header .site-main-header-wrap::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.45) 100%);
	pointer-events: none;
}
#masthead .site-main-header-wrap .site-branding,
#mobile-header .site-main-header-wrap .site-branding {
	position: relative;
	z-index: 1;
	text-align: center;
	justify-content: center;
}
.site-main-header-wrap .site-branding .site-title,
.site-main-header-wrap .site-branding .site-title a,
.site-main-header-wrap .site-branding .site-description {
	color: #fff;
	text-shadow: 0 2px 12px rgba(0,0,0,.6);
}
.site-main-header-wrap .site-branding .site-title {
	font-size: clamp(1.6rem, 4vw, 3rem);
	font-weight: 700;
	letter-spacing: .01em;
}
.site-main-header-wrap .site-branding .site-description {
	font-size: clamp(.95rem, 1.6vw, 1.2rem);
	opacity: .95;
}

/* Menu row */
.site-bottom-header-wrap .site-header-row {
	border-top: 1px solid var(--global-palette7);
	border-bottom: 1px solid var(--global-palette7);
}
.site-bottom-header-wrap .primary-menu-container > ul > li > a {
	font-weight: 600;
}

/* Header tools: dark toggle, search field, account */
.rsp-header-tools {
	display: flex;
	align-items: center;
	gap: .75rem;
}
.rsp-theme-toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.25rem;
	height: 2.25rem;
	padding: 0;
	border: 1px solid var(--global-palette7);
	border-radius: 999px;
	background: transparent;
	color: var(--global-palette4);
	cursor: pointer;
	box-shadow: none;
}
.rsp-theme-toggle:hover { color: var(--global-palette1); background: var(--global-palette8); }
.rsp-theme-toggle .rsp-icon-moon { display: none; }
html[data-theme="dark"] .rsp-theme-toggle .rsp-icon-sun { display: none; }
html[data-theme="dark"] .rsp-theme-toggle .rsp-icon-moon { display: inline-flex; }
.rsp-theme-toggle span { display: inline-flex; }

.rsp-search {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--global-palette7);
	border-radius: 999px;
	background: var(--global-palette9);
	overflow: hidden;
}
.rsp-search input[type="search"] {
	width: 9rem;
	max-width: 40vw;
	border: 0;
	background: transparent;
	padding: .35rem .25rem .35rem .9rem;
	font-size: .9rem;
	box-shadow: none;
	color: var(--global-palette4);
}
.rsp-search input[type="search"]:focus { outline: none; }
.rsp-search:focus-within { border-color: var(--global-palette1); }
.rsp-search button {
	display: inline-flex;
	padding: .4rem .6rem;
	border: 0;
	background: transparent;
	color: var(--global-palette5);
	box-shadow: none;
	cursor: pointer;
}
.rsp-search button:hover { color: var(--global-palette1); }

.rsp-account {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-size: .9rem;
	font-weight: 600;
	white-space: nowrap;
	text-decoration: none;
}
.rsp-account-logout {
	margin-left: .35rem;
	font-weight: 400;
	font-size: .8rem;
	color: var(--global-palette5);
}

/* Mobile header rows */
#mobile-header .site-bottom-header-wrap .site-header-row-container-inner { background: var(--global-palette9); }
#mobile-header .rsp-header-tools .rsp-search input[type="search"] { width: 7rem; }
#mobile-header .rsp-account span { display: none; }

/* The mobile drawer panel itself is dark by Kadence's own default in both light and dark site
   mode. Kadence colours its link text with --global-palette8, assuming that slot is always a
   light "text on a dark surface" colour — true in light mode, where palette8 is the light site
   background colour, but our dark-mode remap repurposes palette8 as the near-black site
   background, so drawer link text goes dark-on-dark and becomes unreadable. */
html[data-theme="dark"] .mobile-navigation ul li:not(.current-menu-item) > a,
html[data-theme="dark"] .mobile-navigation ul li:not(.current-menu-item).menu-item-has-children > .drawer-nav-drop-wrap {
	color: var(--global-palette4);
}

/* ==========================================================================
   Area landing page: one box per blog
   ========================================================================== */
.rsp-boxes {
	list-style: none;
	margin: 0;
	padding: 0;
	display: grid;
	gap: 1.5rem;
	grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr));
}
.rsp-box {
	border-radius: .5rem;
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(0,0,0,.08), 0 6px 20px rgba(0,0,0,.06);
	transition: transform .15s ease, box-shadow .15s ease;
}
.rsp-box:hover { transform: translateY(-2px); box-shadow: 0 2px 6px rgba(0,0,0,.1), 0 12px 28px rgba(0,0,0,.12); }
.rsp-box-link { display: block; color: inherit; text-decoration: none; }
.rsp-box-media { display: block; aspect-ratio: 3 / 2; overflow: hidden; background: var(--global-palette7); }
.rsp-box-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.rsp-box-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, var(--global-palette7), var(--global-palette6)); }
.rsp-box-body { display: block; padding: 1rem 1.25rem 1.25rem; }
.rsp-box-title { display: block; font-size: 1.25rem; font-weight: 700; color: var(--global-palette3); }
.rsp-box-link:hover .rsp-box-title { color: var(--global-palette1); }
.rsp-box-desc { display: block; margin-top: .35rem; color: var(--global-palette5); }
.rsp-box-meta { display: block; margin-top: .6rem; font-size: .8rem; color: var(--global-palette6); text-transform: uppercase; letter-spacing: .05em; }
.rsp-badge-internal {
	display: inline-block;
	margin-left: .5rem;
	padding: .1rem .5rem;
	border-radius: 999px;
	background: var(--global-palette1);
	color: #fff;
	font-size: .7rem;
	font-weight: 600;
	vertical-align: middle;
	text-transform: uppercase;
	letter-spacing: .05em;
}

/* ==========================================================================
   Posts: photo-heavy content
   ========================================================================== */
.entry-content figure.wp-block-image figcaption,
.entry-content .wp-block-gallery figcaption,
.entry-content .kb-gallery-caption {
	margin-top: .5rem;
	font-size: .9rem;
	color: var(--global-palette5);
	text-align: center;
}
.entry-content .wp-block-image img { border-radius: .35rem; }
.entry-content iframe { max-width: 100%; }

/* Previous/next inside the blog */
.post-navigation .nav-links a { text-decoration: none; }

/* Ads area below content, only rendered when a widget exists */
.rsp-ads-below { margin-top: 2rem; }

/* ==========================================================================
   Footer block
   ========================================================================== */
.rsp-footer {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2rem;
	text-align: left;
}
.rsp-footer-heading { font-size: 1rem; margin: 0 0 .5rem; }
.rsp-footer-areas ul { list-style: none; margin: 0; padding: 0; }
.rsp-footer-areas li { margin: 0 0 .25rem; }
.rsp-footer-copyright { grid-column: 1 / -1; margin: 0; font-size: .85rem; color: var(--global-palette6); }
@media (max-width: 719px) {
	.rsp-footer { grid-template-columns: 1fr; }
}

/* ==========================================================================
   Notices, login page
   ========================================================================== */
.rsp-notice {
	margin: 0 0 1rem;
	padding: .75rem 1rem;
	border-radius: .35rem;
	border-left: 4px solid var(--global-palette1);
	background: var(--global-palette8);
	color: var(--global-palette4);
}
.rsp-notice-error { border-left-color: var(--global-palette13); }
.rsp-notice-pending {
	margin: 0;
	border-radius: 0;
	text-align: center;
	background: var(--global-palette1);
	border-left: 0;
	color: #fff;
}
.rsp-login { max-width: 32rem; }
.rsp-login h2 { font-size: 1.2rem; margin: 1.5rem 0 .5rem; }
.rsp-login-hint { font-size: .9rem; color: var(--global-palette5); }
.rsp-oauth-buttons { display: flex; flex-wrap: wrap; gap: .75rem; }
.rsp-oauth-button { text-decoration: none; }
.rsp-oauth-button::before { content: ""; display: inline-block; width: .75em; height: .75em; margin-right: .5em; border-radius: 50%; background: currentColor; opacity: .6; }
.rsp-login-password { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid var(--global-palette7); }
.rsp-login #loginform p { margin: 0 0 .75rem; }
.rsp-login #loginform label { display: block; margin-bottom: .25rem; }
.rsp-login #loginform input[type="text"],
.rsp-login #loginform input[type="password"] { width: 100%; }

/* ==========================================================================
   Language switcher (JS-free <details> dropdown)
   ========================================================================== */
.rsp-lang { position: relative; font-size: .85rem; }
.rsp-lang summary {
	list-style: none;
	cursor: pointer;
	padding: .35rem .6rem;
	border: 1px solid var(--global-palette7);
	border-radius: 999px;
	font-weight: 600;
	color: var(--global-palette4);
	user-select: none;
}
.rsp-lang summary::-webkit-details-marker { display: none; }
.rsp-lang summary::after { content: " ▾"; font-size: .7em; color: var(--global-palette6); }
.rsp-lang summary:hover { color: var(--global-palette1); background: var(--global-palette8); }
.rsp-lang ul {
	position: absolute;
	right: 0;
	z-index: 50;
	min-width: 10rem;
	margin: .35rem 0 0;
	padding: .35rem 0;
	list-style: none;
	background: var(--global-palette9);
	border: 1px solid var(--global-palette7);
	border-radius: .5rem;
	box-shadow: 0 8px 24px rgba(0,0,0,.15);
}
.rsp-lang li { margin: 0; }
.rsp-lang li a { display: block; padding: .4rem .9rem; color: var(--global-palette4); text-decoration: none; }
.rsp-lang li a:hover { background: var(--global-palette8); color: var(--global-palette1); }
.rsp-lang li a[aria-current="true"] { font-weight: 700; color: var(--global-palette1); }
.rsp-lang-footer ul { right: auto; left: 0; bottom: 100%; margin: 0 0 .35rem; }
.rsp-footer-lang { grid-column: 1 / -1; }
#mobile-header .rsp-lang summary { padding: .3rem .5rem; }
