/***********************************************************************
*  Theme + Base
**********************************************************************/
:root {
	--bg: #000e2b;
	--cover-bg: #000e2b;
	--card-bg: #fff;
	--accent: darkred;
	--shadow: 0 4px 8px rgba(0, 0, 0, 0.2), 0 6px 20px rgba(0, 0, 0, 0.19);
	--nav-bg: #1e1f24;

	--card-pad: 15px;
	--card-margin: 20px;

	--bp-nav: 880px;
	--bp-layout: 1125px;
}

* {
	box-sizing: border-box;
}

body {
	margin: 0;
	background: var(--bg);
  	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,"Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans","Liberation Sans", sans-serif;
	line-height: 1.7em;
	letter-spacing: 0.1em;
}

/* Base heading look */
h1,
h2,
h3 {
	text-decoration: underline;
	text-decoration-color: var(--accent);
	text-decoration-thickness: 3px;
	font-weight: 900;
	margin: 0;
}
h1 {
	letter-spacing: 0.15em;
	font-size: 1.75em;
}
h2 {
	letter-spacing: 0.12em;
	font-size: 1.5em;
}
h3 {
	letter-spacing: 0.1em;
	font-size: 1.25em;
}

/***********************************************************************
*  Card shell (used everywhere)
**********************************************************************/
.default-div-wrapper,
.img-text-div-wrapper,
.lrg-img-text-div-wrapper,
.two-text-columns-wrapper,
.flex-accordion-wrapper {
	background: var(--card-bg);
	padding: var(--card-pad);
	margin: var(--card-margin);
	box-shadow: var(--shadow);
}

.default-div-wrapper > *,
.img-text-div-wrapper > *,
.lrg-img-text-div-wrapper > *,
.two-text-columns-wrapper > * {
	min-width: 0;
}

/***********************************************************************
*  Cover
**********************************************************************/
.container {
	margin-top: 20px;
	/*height: 300px;*/ /* Removed to test appearence with new banner - may leave */
	width: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: var(--cover-bg);
}

.cover-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/***********************************************************************
*  Default Div
**********************************************************************/
.default-div-wrapper {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1px;
	text-align: left;
	padding: var(--card-pad);
}

.default-div-wrapper > p {
	text-align: left;
	padding: 5px;
	margin: 5px;
}

.default-div-wrapper > h1 {
	padding-bottom: 0;
	text-align: center;
}

/***********************************************************************
*  Small image / big text  (img-text-div-wrapper)
**********************************************************************/
.img-text-div-wrapper {
	display: grid;
	gap: 1px;
}

@media (min-width: 1125px) {
	.img-text-div-wrapper {
		grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
	}
	/* When reversed: text big, image small */
	.img-text-div-wrapper.reverse {
		grid-template-columns: minmax(0, 2fr) minmax(0, 1fr);
	}
}

@media (max-width: 1124.98px) {
	.img-text-div-wrapper {
		grid-template-columns: 1fr;
		text-align: center;
	}
}

/***********************************************************************
*  50/50 split image + text (lrg-img-text-div-wrapper)
**********************************************************************/
.lrg-img-text-div-wrapper {
	display: grid;
	gap: 1px;
	text-align: left;
}

@media (min-width: 1125px) {
	.lrg-img-text-div-wrapper {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}
}

@media (max-width: 1124.98px) {
	.lrg-img-text-div-wrapper {
		grid-template-columns: 1fr;
	}
}

/***********************************************************************
*  Text columns (inner padding)
**********************************************************************/
.img-text-div-text,
.lrg-img-text-div-text,
.std-container-text {
	padding: 20px;
	margin: 20px;
	text-align: left;
	min-width: 0;
}

@media (max-width: 1124.98px) {
	.lrg-img-text-div-text {
		margin: 12px;
	}
}

/***********************************************************************
*  Polaroid frames (APPLIES TO BOTH WRAPPERS)
**********************************************************************/
.img-text-div-img,
.lrg-img-text-div-img {
	background: #fff;
	padding: 14px;
	margin: 20px;
	box-shadow: var(--shadow);
	border-radius: 2px;
	text-align: center;
	align-self: center;
	box-sizing: border-box;
	min-width: 0;
	max-width: 100%;
}

@media (max-width: 1124.98px) {
	.img-text-div-img,
	.lrg-img-text-div-img {
		width: 100%;
		max-width: 100%;
		margin-left: 0;
		margin-right: 0;
	}
}

.img-text-div-img.img-scale-sm,
.lrg-img-text-div-img.img-scale-sm {
	max-width: min(100%, 360px);
	margin-left: auto;
	margin-right: auto;
}

.img-text-div-img.img-scale-md,
.lrg-img-text-div-img.img-scale-md {
	max-width: min(100%, 520px);
	margin-left: auto;
	margin-right: auto;
}

.img-text-div-img.img-scale-lg,
.lrg-img-text-div-img.img-scale-lg {
	max-width: min(100%, 720px);
	margin-left: auto;
	margin-right: auto;
}

.img-text-div-img.img-scale-full,
.lrg-img-text-div-img.img-scale-full {
	max-width: 100%;
	width: 100%;
	margin-left: 0;
	margin-right: 0;
}

.lrg-img-text-div-img {
	align-self: center;
}

.img-text-div-img > img,
.lrg-img-text-div-img > img {
	display: block;
	width: 100%;
	height: auto;
	padding: 0;
	margin: 0;
	border-radius: 2px;
	object-fit: cover;
}

.img-text-div-img > p,
.lrg-img-text-div-img > p {
	margin: 10px 0 0;
	padding: 0;
	text-align: center;
	color: #111;
	text-decoration: none;
}

/* Social mini icons */
.sml > a > img {
	width: 32px;
	height: 42px;
	padding: 10px 0 0;
	margin: 0;
}
.sml > a {
	padding-bottom: 32px;
}

/***********************************************************************
*  Two text columns
**********************************************************************/
.two-text-columns-wrapper {
	display: grid;
	gap: 1px;
	text-align: left;
	position: relative;
}

@media (min-width: 1125px) {
	.two-text-columns-wrapper {
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	}

	.two-text-columns-text-left {
		padding: 20px;
		margin: 20px;
		margin-right: 0;
		min-width: 0;
	}

	.two-text-columns-text-right {
		padding: 20px;
		margin: 20px;
		margin-left: 0;
		min-width: 0;
	}
}

@media (max-width: 1124.98px) {
	.two-text-columns-wrapper {
		grid-template-columns: 1fr;
	}

	.two-text-columns-text-left {
		padding: 20px;
		margin: 20px;
		margin-bottom: 0;
		border-bottom: 2px solid var(--accent);
		min-width: 0;
	}

	.two-text-columns-text-right {
		padding: 20px;
		margin: 20px;
		margin-top: 0;
		min-width: 0;
	}
}

/***********************************************************************
*  Separators that follow image position
*  (uses your JS classes: .reverse and .img-left)
**********************************************************************/
/* imgText desktop: default border-left; reversed border-right */
@media (min-width: 1125px) {
	.img-text-div-text {
		border-left: 2px solid var(--accent);
	}
	.img-text-div-wrapper.reverse .img-text-div-text {
		border-left: none;
		border-right: 2px solid var(--accent);
	}
}

/* imgText mobile: separator becomes top/bottom depending on order */
@media (max-width: 1124.98px) {
	.img-text-div-text {
		border-left: none;
		border-right: none;
	}

	.img-text-div-wrapper:not(.reverse) .img-text-div-text {
		border-top: 2px solid var(--accent);
		border-bottom: none;
	}

	.img-text-div-wrapper.reverse .img-text-div-text {
		border-top: none;
		border-bottom: 2px solid var(--accent);
	}
}

/* split50 + right mobile: separator becomes top/bottom depending on order */
@media (max-width: 1124.98px) {
	.lrg-img-text-div-text {
		border-left: none;
		border-right: none;
	}

	.lrg-img-text-div-wrapper:not(.img-left) .lrg-img-text-div-text,
	.right:not(.img-left) .lrg-img-text-div-text {
		border-bottom: 2px solid var(--accent);
		border-top: none;
	}

	.lrg-img-text-div-wrapper.img-left .lrg-img-text-div-text,
	.right.img-left .lrg-img-text-div-text {
		border-top: 2px solid var(--accent);
		border-bottom: none;
	}
}

/***********************************************************************
*  True centre divider ONLY for true 50/50 layouts
**********************************************************************/
.lrg-img-text-div-wrapper {
	position: relative;
}

.lrg-img-text-div-wrapper::before,
.two-text-columns-wrapper::before {
	content: "";
	position: absolute;
	top: 20px;
	bottom: 20px;
	left: 50%;
	width: 2px;
	transform: translateX(-1px);
	background: var(--accent);
	pointer-events: none;
}

@media (max-width: 1124.98px) {
	.lrg-img-text-div-wrapper::before,
	.two-text-columns-wrapper::before {
		display: none;
	}
}

/***********************************************************************
*  Hover-card overlay inside polaroid frames (optional)
**********************************************************************/
.img-text-div-img .content,
.lrg-img-text-div-img .content {
	width: 100%;
	max-width: none;
	margin: 0;
	border-radius: 2px;
}

.img-text-div-img .content-image,
.lrg-img-text-div-img .content-image {
	width: 100%;
	height: auto;
}

.img-text-div-img .content-video,
.lrg-img-text-div-img .content-video {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 2px;
	border: 0;
	aspect-ratio: 16 / 9;
	background: #000;
}

/* Required for overlays to appear above images */
.img-text-div-img .content,
.lrg-img-text-div-img .content {
	position: relative;
}

.img-text-div-img .content-overlay,
.lrg-img-text-div-img .content-overlay {
	z-index: 1;
}

.img-text-div-img .content-details,
.lrg-img-text-div-img .content-details {
	z-index: 2;
}

.img-text-div-img .content-image,
.lrg-img-text-div-img .content-image {
	position: relative;
	z-index: 0;
}

/***********************************************************************
*  Mermaid diagrams
**********************************************************************/
.mermaid-wrap {
	position: relative;
	min-height: 140px;
}

.mermaid-wrap.is-loading::after {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(255, 255, 255, 0.75);
}

.mermaid-wrap.is-loading::before {
	content: "";
	position: absolute;
	left: 50%;
	top: 50%;
	width: 36px;
	height: 36px;
	margin: -18px 0 0 -18px;
	border-radius: 50%;
	border: 3px solid rgba(20, 20, 20, 0.2);
	border-top-color: rgba(20, 20, 20, 0.6);
	animation: mermaid-spin 0.8s linear infinite;
	z-index: 1;
}

.mermaid-wrap.is-loading .mermaid {
	visibility: hidden;
}

html.mermaid-ready .mermaid-wrap.is-loading::before,
html.mermaid-ready .mermaid-wrap.is-loading::after {
	display: none;
}

html.mermaid-ready .mermaid-wrap.is-loading .mermaid {
	visibility: visible;
}

.mermaid-wrap:not(.is-loading)::before,
.mermaid-wrap:not(.is-loading)::after {
	content: none;
	display: none;
}

.mermaid {
	display: flex;
	justify-content: center;
	overflow-x: auto;
}

.cms-admin pre.cms-mermaid-source code {
	display: none;
}

.cms-admin pre.cms-mermaid-source.is-show-source code {
	display: block;
}

.cms-admin pre .code-copy-btn,
.cms-admin pre .code-preview-btn {
	position: absolute;
	top: 30px;
	right: 12px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 8px;
	border: 1px solid rgba(148, 163, 184, 0.4);
	background: rgba(15, 23, 42, 0.75);
	color: #e2e8f0;
	font-family: "Material Icons", system-ui, sans-serif;
	font-size: 18px;
	line-height: 1;
	opacity: 0;
	pointer-events: none;
	transition:
		opacity 0.15s ease,
		background 0.15s ease,
		border-color 0.15s ease,
		color 0.15s ease;
}

.cms-admin pre .code-preview-btn {
	right: 48px;
}

.cms-admin pre:hover .code-copy-btn,
.cms-admin pre:focus-within .code-copy-btn,
.cms-admin pre:hover .code-preview-btn,
.cms-admin pre:focus-within .code-preview-btn {
	opacity: 1;
	pointer-events: auto;
}

.cms-admin pre .code-copy-btn:hover,
.cms-admin pre .code-preview-btn:hover {
	background: rgba(30, 41, 59, 0.85);
	border-color: rgba(148, 163, 184, 0.7);
	color: #f8fafc;
}

.cms-admin pre .code-copy-btn[data-tooltip]::after,
.cms-admin pre .code-preview-btn[data-tooltip]::after,
.cms-admin .mermaid-admin-preview .code-copy-btn[data-tooltip]::after,
.cms-admin .mermaid-admin-preview .code-preview-btn[data-tooltip]::after {
	content: attr(data-tooltip);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	transform: translate(-50%, -4px);
	background: #0f1726;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #f5f7ff;
	font-family: ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont,
		"Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans",
		"Liberation Sans", sans-serif;
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 10px;
	line-height: 1.2;
	letter-spacing: 0.04em;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	box-shadow: 0 6px 14px rgba(4, 8, 16, 0.35);
	transition:
		opacity 120ms ease,
		transform 120ms ease;
	z-index: 5;
}

.cms-admin pre .code-copy-btn[data-tooltip]::before,
.cms-admin pre .code-preview-btn[data-tooltip]::before,
.cms-admin .mermaid-admin-preview .code-copy-btn[data-tooltip]::before,
.cms-admin .mermaid-admin-preview .code-preview-btn[data-tooltip]::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: calc(100% + 2px);
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: rgba(255, 255, 255, 0.2);
	opacity: 0;
	pointer-events: none;
	transition: opacity 120ms ease;
	z-index: 4;
}

.cms-admin pre .code-copy-btn[data-tooltip]:hover::after,
.cms-admin pre .code-preview-btn[data-tooltip]:hover::after,
.cms-admin pre .code-copy-btn[data-tooltip]:focus-visible::after,
.cms-admin pre .code-preview-btn[data-tooltip]:focus-visible::after,
.cms-admin .mermaid-admin-preview .code-copy-btn[data-tooltip]:hover::after,
.cms-admin .mermaid-admin-preview .code-preview-btn[data-tooltip]:hover::after,
.cms-admin .mermaid-admin-preview .code-copy-btn[data-tooltip]:focus-visible::after,
.cms-admin .mermaid-admin-preview .code-preview-btn[data-tooltip]:focus-visible::after {
	opacity: 1;
	transform: translate(-50%, 0);
}

.cms-admin pre .code-copy-btn[data-tooltip]:hover::before,
.cms-admin pre .code-preview-btn[data-tooltip]:hover::before,
.cms-admin pre .code-copy-btn[data-tooltip]:focus-visible::before,
.cms-admin pre .code-preview-btn[data-tooltip]:focus-visible::before,
.cms-admin .mermaid-admin-preview .code-copy-btn[data-tooltip]:hover::before,
.cms-admin .mermaid-admin-preview .code-preview-btn[data-tooltip]:hover::before,
.cms-admin .mermaid-admin-preview .code-copy-btn[data-tooltip]:focus-visible::before,
.cms-admin .mermaid-admin-preview .code-preview-btn[data-tooltip]:focus-visible::before {
	opacity: 1;
}

.cms-admin .mermaid-admin-preview {
	position: relative;
	z-index: 0;
}

.cms-admin .mermaid-admin-preview svg {
	pointer-events: none;
}

.cms-admin .mermaid-admin-preview .cms-mermaid-preview__diagram {
	pointer-events: none;
}

.cms-admin .mermaid-admin-preview.is-show-source {
	/* Keep wrapper visible so preview toggle stays accessible. */
}

.cms-admin .mermaid-admin-preview.is-show-source .cms-mermaid-preview__diagram {
	display: none;
}

.cms-admin .mermaid-admin-preview .code-copy-btn,
.cms-admin .mermaid-admin-preview .code-preview-btn {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 3;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	border-radius: 8px;
	border: 1px solid rgba(148, 163, 184, 0.4);
	background: rgba(15, 23, 42, 0.75);
	color: #e2e8f0;
	font-family: "Material Icons", system-ui, sans-serif;
	font-size: 18px;
	line-height: 1;
	opacity: 0;
	pointer-events: none;
	transition:
		opacity 0.15s ease,
		background 0.15s ease,
		border-color 0.15s ease,
		color 0.15s ease;
}

.cms-admin .mermaid-admin-preview .code-preview-btn {
	right: 48px;
}

.cms-admin .mermaid-admin-preview:hover .code-copy-btn,
.cms-admin .mermaid-admin-preview:focus-within .code-copy-btn,
.cms-admin .mermaid-admin-preview:hover .code-preview-btn,
.cms-admin .mermaid-admin-preview:focus-within .code-preview-btn {
	opacity: 1;
	pointer-events: auto;
}

.cms-admin .mermaid-admin-preview .code-copy-btn:hover,
.cms-admin .mermaid-admin-preview .code-preview-btn:hover {
	background: rgba(30, 41, 59, 0.85);
	border-color: rgba(148, 163, 184, 0.7);
	color: #f8fafc;
}

.mermaid svg,
.mermaid-wrap svg {
	max-width: 100%;
	height: auto;
}

@keyframes mermaid-spin {
	from {
		transform: rotate(0deg);
	}
	to {
		transform: rotate(360deg);
	}
}

/***********************************************************************
*  Portfolio grid
**********************************************************************/
.portfolio-grid {
	background: var(--card-bg);
	padding: var(--card-pad);
	margin: var(--card-margin);
	box-shadow: var(--shadow);
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.portfolio-grid__header {
	text-align: center;
	padding: 0;
}

.portfolio-grid__header h2 {
	margin: 0;
	letter-spacing: 0.08em;
	padding: 0;
}

.portfolio-grid__intro {
	color: rgba(0, 0, 0, 0.75);
	line-height: 1.6;
	padding: 0;
}

.portfolio-grid__divider {
	height: 1px;
	background: rgba(0, 0, 0, 0.1);
	width: 100%;
}

.portfolio-grid__controls {
	display: flex;
	justify-content: flex-start;
	width: 100%;
	padding: 20px;
}

.portfolio-grid__search {
	width: 100%;
}

.portfolio-grid__search-input {
	width: 100%;
	padding: 10px 12px;
	border-radius: 8px;
	border: 1px solid rgba(0, 0, 0, 0.2);
	font-family: inherit;
	letter-spacing: 0.08em;
}

.portfolio-grid__filters {
	display: flex;
	flex-direction: column;
	gap: 10px;
	width: 100%;
	padding: 20px;
}

.portfolio-grid__filters-title {
	font-size: 12px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(0, 0, 0, 0.6);
}

.portfolio-grid__filter-row {
	display: grid;
	grid-template-columns: minmax(120px, 160px) 1fr;
	gap: 12px;
	align-items: center;
}

.portfolio-grid__filter-label {
	font-size: 12px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: rgba(0, 0, 0, 0.6);
}

.portfolio-grid__filter-group {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	align-items: center;
}

.portfolio-filter-pill {
	border: 1px solid rgba(0, 0, 0, 0.2);
	background: rgba(0, 0, 0, 0.04);
	border-radius: 999px;
	padding: 5px 11px;
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	font-family: inherit;
}

.portfolio-filter-pill.is-active {
	background: var(--accent);
	border-color: var(--accent);
	color: #fff;
}

.portfolio-filter-icon {
	width: 32px;
	height: 32px;
	border-radius: 999px;
	border: 1px solid rgba(0, 0, 0, 0.2);
	background: rgba(0, 0, 0, 0.04);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1e1f24;
	cursor: pointer;
	position: relative;
	transition:
		transform 120ms ease,
		filter 120ms ease,
		box-shadow 120ms ease;
}

.portfolio-filter-icon .material-icons {
	font-size: 20px;
}

.portfolio-filter-icon:hover {
	transform: translateY(-1px);
	filter: brightness(1.08);
}

.portfolio-filter-icon.is-active {
	box-shadow: 0 0 0 2px var(--accent);
}

.portfolio-grid__cards {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 45px;
	padding: 20px 45px 20px 45px;
	align-items: start;
}

.portfolio-grid__empty {
	padding: 20px;
	border: 1px dashed rgba(0, 0, 0, 0.2);
	border-radius: 12px;
	text-align: center;
	color: rgba(0, 0, 0, 0.6);
	letter-spacing: 0.08em;
	text-transform: uppercase;
	font-size: 13px;
}

.portfolio-card {
	background: #fff;
	border: 1px solid rgba(0, 0, 0, 0.12);
	border-radius: 12px;
	padding: 16px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	box-shadow: 0 10px 18px rgba(0, 0, 0, 0.08);
	max-height: 100%;
	--portfolio-type-bg: #1e1f24;
}

.portfolio-card__head {
	display: flex;
	justify-content: space-between;
	gap: 12px;
	align-items: flex-start;
}

.portfolio-card__title {
	font-weight: 800;
	letter-spacing: 0.08em;
}

.portfolio-card__title:empty {
	display: none;
}

.portfolio-card__date {
	font-size: 12px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color: rgba(0, 0, 0, 0.6);
}

.portfolio-card__date:empty {
	display: none;
}

.portfolio-card__icons {
	display: flex;
	gap: 6px;
	flex-wrap: nowrap;
	align-items: center;
	flex-shrink: 0;
}

.portfolio-card__icon {
	width: 32px;
	height: 32px;
	border-radius: 999px;
	border: 1px solid rgba(0, 0, 0, 0.2);
	background: #f4f4f4;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1e1f24;
	text-decoration: none;
	cursor: pointer;
	position: relative;
	transition:
		transform 120ms ease,
		filter 120ms ease;
}

.portfolio-card__icon .material-icons {
	font-size: 20px;
}

.portfolio-icon {
	width: 20px;
	height: 20px;
	fill: currentColor;
	display: block;
}

.portfolio-card__icon--github,
.portfolio-filter-icon--github {
	background: #6e40c9;
	border-color: #6e40c9;
	color: #fff;
}

.portfolio-card__icon--youtube,
.portfolio-filter-icon--youtube {
	background: #dc2626;
	border-color: #dc2626;
	color: #fff;
}

.portfolio-card__icon--site,
.portfolio-filter-icon--site {
	background: #0ea5e9;
	border-color: #0ea5e9;
	color: #fff;
}

.portfolio-card__icon--facebook,
.portfolio-filter-icon--facebook {
	background: #0f766e;
	border-color: #0f766e;
	color: #fff;
}

.portfolio-card__icon--gallery,
.portfolio-filter-icon--gallery {
	background: #f59e0b;
	border-color: #f59e0b;
	color: #fff;
}

.portfolio-card__icon:hover {
	transform: translateY(-1px);
	filter: brightness(1.08);
}

.portfolio-card__icon[data-tooltip]::after,
.portfolio-filter-icon[data-tooltip]::after {
	content: attr(data-tooltip);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	transform: translate(-50%, -4px);
	background: #0f1726;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #f5f7ff;
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 10px;
	letter-spacing: 0.04em;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	box-shadow: 0 6px 14px rgba(4, 8, 16, 0.35);
	transition:
		opacity 120ms ease,
		transform 120ms ease;
	z-index: 5;
}

.portfolio-card__icon[data-tooltip]::before,
.portfolio-filter-icon[data-tooltip]::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: calc(100% + 2px);
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: rgba(255, 255, 255, 0.2);
	opacity: 0;
	pointer-events: none;
	transition: opacity 120ms ease;
	z-index: 4;
}

.portfolio-card__icon[data-tooltip]:hover::after,
.portfolio-card__icon[data-tooltip]:focus-visible::after,
.portfolio-filter-icon[data-tooltip]:hover::after,
.portfolio-filter-icon[data-tooltip]:focus-visible::after {
	opacity: 1;
	transform: translate(-50%, 0);
}

.portfolio-card__icon[data-tooltip]:hover::before,
.portfolio-card__icon[data-tooltip]:focus-visible::before,
.portfolio-filter-icon[data-tooltip]:hover::before,
.portfolio-filter-icon[data-tooltip]:focus-visible::before {
	opacity: 1;
}

.portfolio-card__type {
	display: inline-flex;
	align-self: flex-start;
	padding: 5px 11px;
	border-radius: 999px;
	background: var(--portfolio-type-bg);
	color: #fff;
	font-size: 11px;
	letter-spacing: 0.15em;
	text-transform: uppercase;
}

.portfolio-card__type:empty {
	display: none;
}

.portfolio-card[data-type="work"] {
	--portfolio-type-bg: #2563eb;
}

.portfolio-card[data-type="academic"] {
	--portfolio-type-bg: #dc2626;
}

.portfolio-card[data-type="personal"] {
	--portfolio-type-bg: #16a34a;
}

.portfolio-card__divider {
	height: 1px;
	width: 100%;
	background: rgba(0, 0, 0, 0.08);
	margin: 15px 0px 15px 0px;
}

.portfolio-card__summary {
	font-size: 14px;
	letter-spacing: 0.05em;
	line-height: 1.6;
	color: rgba(0, 0, 0, 0.75);
}

.portfolio-card__summary:empty {
	display: none;
}

.portfolio-card__summary p {
	margin: 0 0 10px;
}

.portfolio-card__summary p:last-child {
	margin-bottom: 0;
}

.portfolio-card__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin-top: auto;
}

.portfolio-card__tag {
	border: 0;
	background: #1e1f24;
	color: #fff;
	border-radius: 999px;
	padding: 5px 11px;
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	cursor: pointer;
	font-family: inherit;
}

.portfolio-card__tag:hover {
	background: var(--accent);
}

@media (max-width: 1124.98px) {
	.portfolio-grid__cards {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 32px;
		padding: 20px;
	}
}

@media (max-width: 760px) {
	.portfolio-grid__cards {
		grid-template-columns: 1fr;
		gap: 24px;
		padding: 0 16px;
	}

	.portfolio-grid__filter-row {
		grid-template-columns: 1fr;
	}
}

/***********************************************************************
*  Footer
**********************************************************************/
footer {
	text-align: center;
	background-color: var(--card-bg);
	padding: 20px;
	margin: 20px;
}

footer ol li {
	list-style: none;
	margin-bottom: 10px;
}

footer ol {
	padding-left: 0;
	margin: 0;
}

footer ol li img {
	padding: 0 5px;
	width: 35px;
}
footer a {
	text-decoration-line: none;
}

/* Polaroid contexts: let images size naturally (fixes “disappearing” images) */
.img-text-div-img .content-image,
.lrg-img-text-div-img .content-image {
	height: auto;
	object-fit: contain;
}

/* Optional: keep the polaroid content wrapper from collapsing oddly */
.img-text-div-img .content,
.lrg-img-text-div-img .content {
	height: auto;
}

/***********************************************************************
*  cms banner
**********************************************************************/

#cms-banner {
	width: 100%;
	margin-top: 20px;
	height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: var(--cover-bg);
}

#cms-banner img {
	display: block;
	width: 100%;
	max-height: 300px;
	height: auto;
	object-fit: contain; /* show all, no crop */
}

#cms-portal {
	width: 100%;
}

/***********************************************************************
*  cms section adder
**********************************************************************/

/* Empty state */
.cms-empty {
	padding: 18px;
	border: 1px dashed rgba(255, 255, 255, 0.18);
	border-radius: 16px;
	background: rgba(255, 255, 255, 0.03);
	margin: 12px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	text-align: center;
}

/* Emty state text formatting */
.cms-empty-title {
	color: #fff;
	align-self: center;
	font-weight: 700;
	letter-spacing: 0.02em;
	opacity: 0.9;
}

/* Divider CTA */
.cms-divider-btn {
	margin-top: 14px;
	width: 100%;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border: 0;
	background: transparent;
	color: rgba(255, 255, 255, 0.85);
	cursor: pointer;
}

.cms-divider-line {
	flex: 1 1 auto;
	height: 1px;
	background: rgba(255, 255, 255, 0.14);
}

.cms-divider-plus {
	width: 32px;
	height: 32px;
	border-radius: 999px;
	display: grid;
	place-items: center;
	font-weight: 900;
	background: rgba(60, 200, 120, 0.18);
	border: 1px solid rgba(60, 200, 120, 0.35);
	transform: translateZ(0);
	transition:
		transform 160ms ease,
		background 160ms ease;
}

.cms-divider-text {
	font-weight: 700;
	letter-spacing: 0.02em;
	opacity: 0.9;
}

/* Hover animation */
.cms-divider-btn:hover .cms-divider-plus {
	transform: scale(1.08) rotate(90deg);
	background: rgba(60, 200, 120, 0.26);
}
.cms-divider-btn:hover .cms-divider-line {
	background: rgba(60, 200, 120, 0.22);
}

.cms-block {
	position: relative;
}

.cms-block--pending {
	outline: 1px solid rgba(255, 183, 3, 0.5);
	box-shadow: 0 0 0 1px rgba(255, 183, 3, 0.2);
}

.cms-block__badge {
	position: absolute;
	top: -20px;
	left: 1px;
	padding: 10px 20px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	background: rgba(10, 12, 18, 0.95);
	color: rgba(255, 255, 255, 0.9);
	border: 1px solid rgba(255, 255, 255, 0.2);
	pointer-events: none;
	text-align: center;
	display: flex;
	align-items: center;
	justify-content: center;
}

.cms-block__badge--baseline {
	background: rgba(28, 34, 52, 0.97);
	border-color: rgba(110, 130, 190, 0.75);
	color: rgba(235, 242, 255, 0.98);
}

.cms-block__badge--new {
	background: rgba(14, 42, 32, 0.97);
	border-color: rgba(80, 200, 140, 0.9);
	color: rgba(220, 255, 235, 0.98);
}

.cms-block__badge--modified {
	background: rgba(52, 34, 16, 0.97);
	border-color: rgba(255, 170, 80, 0.9);
	color: rgba(255, 238, 220, 0.98);
}

.cms-block__badge--committed {
	background: rgba(24, 36, 72, 0.97);
	border-color: rgba(100, 140, 255, 0.9);
	color: rgba(230, 238, 255, 0.98);
}

.cms-block__badge--removed {
	background: rgba(76, 18, 18, 0.97);
	border-color: rgba(255, 110, 110, 0.9);
	color: rgba(255, 232, 232, 0.98);
}

.cms-block__overlay {
	position: absolute;
	inset: 0;
	background: rgba(10, 12, 20, 0.4);
	backdrop-filter: blur(1px);
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.85);
	pointer-events: none;
	margin: 0 20px 0 20px;
}

.cms-block__overlay--remove {
	background: rgba(120, 30, 30, 0.6);
	color: rgba(255, 235, 235, 0.95);
}

.cms-block__controls {
	position: absolute;
	top: 8px;
	right: 30px;
	display: flex;
	gap: 6px;
	z-index: 5;
}

.cms-hero-editable {
	position: relative;
}

.cms-hero-edit {
	position: absolute;
	top: 10px;
	right: 16px;
	z-index: 3;
}

.cms-block__btn {
	border: 1px solid rgba(255, 255, 255, 0.14);
	background: rgba(10, 12, 20, 0.75);
	color: #1b1b1b;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	padding: 6px 10px;
	border-radius: 10px;
	cursor: pointer;
	transition:
		background 120ms ease,
		border-color 120ms ease;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	justify-content: center;
	text-align: center;
}

.cms-block__btn:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.25);
}

.cms-block__icon {
	width: 14px;
	height: 14px;
	display: inline-block;
	font-size: 14px;
	line-height: 1;
	font-family: system-ui, sans-serif;
	font-weight: 900;
	font-style: normal;
}

.cms-block__icon--edit {
	font-family: "Material Icons", system-ui, sans-serif;
	font-weight: 400;
}

.cms-block__icon--delete {
	font-family: "Material Icons", system-ui, sans-serif;
	font-weight: 400;
}

.cms-block__btn--edit {
	border-color: rgba(255, 190, 60, 0.9);
	background: rgba(255, 190, 60, 0.4);
	color: #1b1b1b;
}

.cms-block__btn--edit:hover {
	background: rgba(255, 190, 60, 0.7);
	border-color: rgba(255, 190, 60, 1);
}

.cms-block__btn--danger {
	border-color: rgba(255, 110, 110, 0.9);
	background: rgba(180, 40, 40, 0.4);
	color: #1b1b1b;
}

.cms-block__btn--danger:hover {
	background: rgba(180, 40, 40, 0.65);
	border-color: rgba(255, 130, 130, 1);
}

.cms-block__btn--move {
	border-color: rgba(90, 140, 255, 0.9);
	background: rgba(90, 140, 255, 0.4);
	color: #0b1526;
}

.cms-block__btn--move:hover {
	background: rgba(90, 140, 255, 0.7);
	border-color: rgba(90, 140, 255, 1);
}

.cms-block--dark-controls .cms-block__btn {
	color: #fff;
}

/***********************************************************************
*  cms grid controls
**********************************************************************/
.cms-grid-card {
	position: relative;
}

.cms-grid-actions {
	position: absolute;
	top: 8px;
	right: 8px;
	display: flex;
	gap: 6px;
	z-index: 4;
	opacity: 0;
	transform: translateY(-4px);
	transition:
		opacity 140ms ease,
		transform 140ms ease;
	pointer-events: none;
}

.cms-grid-card:hover .cms-grid-actions {
	opacity: 1;
	transform: translateY(0);
	pointer-events: auto;
}

.cms-grid-action {
	border: 1px solid rgba(255, 255, 255, 0.35);
	background: rgba(10, 12, 20, 0.7);
	color: #fff;
	padding: 4px 6px;
	border-radius: 8px;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.cms-grid-action:hover {
	background: rgba(255, 255, 255, 0.12);
	border-color: rgba(255, 255, 255, 0.6);
}

.cms-grid-action--danger {
	border-color: rgba(255, 120, 120, 0.9);
	background: rgba(180, 40, 40, 0.55);
}

.cms-grid-action--move {
	border-color: rgba(90, 140, 255, 0.9);
	background: rgba(90, 140, 255, 0.5);
	color: #fff;
}

.cms-grid-action--move:hover {
	border-color: rgba(90, 140, 255, 1);
	background: rgba(90, 140, 255, 0.7);
}

.cms-grid-action--edit {
	border-color: rgba(255, 165, 90, 0.9);
	background: rgba(255, 140, 60, 0.55);
	color: #fff;
}

.cms-grid-action--edit:hover {
	border-color: rgba(255, 175, 110, 1);
	background: rgba(255, 140, 60, 0.75);
}

.cms-grid-action--danger:hover {
	border-color: rgba(255, 140, 140, 1);
	background: rgba(180, 40, 40, 0.75);
}

.cms-grid__icon {
	font-size: 16px;
	line-height: 1;
}

.cms-grid-insert {
	width: auto;
	margin: 0;
	padding: 6px 8px;
	border-radius: 999px;
	align-self: center;
	justify-content: center;
	gap: 8px;
	flex: 0 0 auto;
}

.grid-wrapper--row .cms-grid-insert {
	align-self: center;
	width: 36px;
	height: 36px;
	padding: 0;
	gap: 0;
	background: rgba(60, 200, 120, 0.18);
	border: 1px solid rgba(60, 200, 120, 0.35);
}

.cms-grid-insert .cms-divider-line {
	flex: 0 0 22px;
	height: 1px;
}

.cms-grid-insert .cms-divider-plus {
	width: 26px;
	height: 26px;
}

.grid-wrapper--row .cms-grid-insert .cms-divider-line {
	display: none;
}

.grid-wrapper--row .cms-grid-insert .cms-divider-plus {
	width: 32px;
	height: 32px;
	background: transparent;
	border: 0;
}

/***********************************************************************
*  cms modal
**********************************************************************/

.cms-modal {
	position: fixed;
	inset: 0;
	z-index: 10000;
	display: none;
	align-items: center;
	justify-content: center;
	background: rgba(0, 0, 0, 0.7);
	padding: 16px;
}

.cms-modal.is-open {
	display: flex;
}

.cms-modal__panel {
	width: min(1400px, 96vw);
	max-height: 92vh;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	background: #0b1220;
	border: 1px solid rgba(255, 255, 255, 0.12);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.45);
	position: relative;
	z-index: 1;
}

.cms-lock,
.cms-lock body {
	overflow: hidden;
}

.cms-modal__header,
.cms-modal__footer {
	padding: 14px 16px;
	background: rgba(255, 255, 255, 0.04);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
}

.cms-modal__title {
	margin: 0;
	font-size: 18px;
	letter-spacing: 0.04em;
	color: #fff;
}

.cms-modal__close {
	background: rgba(255, 90, 90, 0.16);
	border: 1px solid rgba(255, 90, 90, 0.35);
	color: #fff;
	font-size: 18px;
	width: 32px;
	height: 32px;
	line-height: 1;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 4px;
}

.cms-modal__close:hover {
	background: rgba(255, 90, 90, 0.3);
	border-color: rgba(255, 90, 90, 0.55);
}

.cms-modal__body {
	padding: 16px;
	overflow: auto;
	flex: 1 1 auto;
	min-height: 0;
	color: rgba(255, 255, 255, 0.9);
}

.cms-modal__confirm {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(6, 8, 14, 0.82);
	padding: 16px;
	z-index: 2;
}

.cms-modal__confirm-panel {
	width: min(420px, 90vw);
	background: #0b1220;
	border: 1px solid rgba(255, 255, 255, 0.18);
	box-shadow: 0 18px 50px rgba(0, 0, 0, 0.5);
	padding: 18px 18px 16px;
	color: #f5f7ff;
}

.cms-modal__confirm-panel .cms-modal__text {
	color: #f5f7ff;
}

.cms-modal__confirm-title {
	margin: 0 0 8px;
	font-size: 16px;
	letter-spacing: 0.04em;
	color: #fff;
}

.cms-modal__confirm-actions {
	display: flex;
	justify-content: flex-end;
	gap: 8px;
	margin-top: 12px;
}

.cms-modal__confirm .cms-btn--move {
	color: #fff;
}

.cms-modal__body {
	scrollbar-color: rgba(255, 255, 255, 0.45) rgba(255, 255, 255, 0.08);
	scrollbar-width: thin;
}

.cms-modal__body::-webkit-scrollbar {
	width: 12px;
}

.cms-modal__body::-webkit-scrollbar-track {
	background: rgba(255, 255, 255, 0.08);
	border-radius: 8px;
}

.cms-modal__body::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, 0.4);
	border-radius: 8px;
	border: 2px solid rgba(11, 18, 32, 0.85);
}

.cms-modal__text {
	margin: 0 0 12px;
	opacity: 0.85;
}

.cms-modal__list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.cms-modal__list--scroll {
	max-height: 45vh;
	overflow: auto;
	padding-right: 6px;
	scrollbar-color: rgba(255, 255, 255, 0.45) rgba(255, 255, 255, 0.08);
	scrollbar-width: thin;
}

.cms-modal__list--scroll::-webkit-scrollbar {
	width: 12px;
}

.cms-modal__list--scroll::-webkit-scrollbar-track {
	background: rgba(255, 255, 255, 0.08);
	border-radius: 8px;
}

.cms-modal__list--scroll::-webkit-scrollbar-thumb {
	background: rgba(255, 255, 255, 0.4);
	border-radius: 8px;
	border: 2px solid rgba(11, 18, 32, 0.85);
}

.cms-modal__group {
	border: 1px solid rgba(255, 255, 255, 0.1);
	padding: 10px 12px;
	background: rgba(255, 255, 255, 0.03);
}

.cms-modal__group:hover {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.2);
}

.cms-modal__row {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 8px;
}

.cms-modal__row:hover {
	background: rgba(255, 255, 255, 0.04);
}

.cms-modal__row--pick {
	padding: 8px 10px;
	border-radius: 10px;
	cursor: pointer;
}

.cms-modal__row--pick .cms-modal__label {
	cursor: pointer;
}

.cms-modal__row--pick .cms-modal__action--pick {
	cursor: pointer;
	transition:
		background 160ms ease,
		color 160ms ease,
		border-color 160ms ease;
}

.cms-modal__row--pick:hover .cms-modal__action--pick {
	background: linear-gradient(135deg, #1f9d5a, #2bc26b);
	border-color: rgba(43, 194, 107, 0.6);
	color: #081a10;
}

.cms-modal__label {
	font-weight: 700;
	letter-spacing: 0.02em;
	cursor: pointer;
	user-select: none;
}

.cms-modal__row input[type="checkbox"] {
	cursor: pointer;
	pointer-events: auto;
}

.cms-modal__sublist {
	margin: 0;
	padding-left: 18px;
	opacity: 0.9;
}

.cms-rte__field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 14px;
}

.cms-rte__toolbar-host {
	display: flex;
	justify-content: center;
	margin-bottom: 10px;
	position: sticky;
	top: 10px;
	z-index: 6;
}

.cms-rte__label {
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.7;
}

.cms-rte__toolbar {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	align-items: stretch;
	position: sticky;
	top: 0;
	z-index: 5;
	padding: 6px 8px;
	border-radius: 10px;
	background: #0f1726;
	border: 1px solid rgba(255, 255, 255, 0.1);
	align-self: center;
}

.cms-rte__toolbar-title-text {
	align-self: center;
}

.cms-rte__toolbar-group {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.cms-rte__toolbar-title {
	display: flex;
	flex-direction: column;
	gap: 3px;
	padding: 0 2px;
	font-size: 9px;
	letter-spacing: 0.18em;
	text-transform: uppercase;
	color: rgba(255, 255, 255, 0.55);
}

.cms-rte__toolbar-title-line {
	height: 1px;
	background: rgba(255, 255, 255, 0.25);
	border-radius: 999px;
}

.cms-rte__toolbar-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 5px;
}

.cms-rte__toolbar-divider {
	width: 1px;
	align-self: stretch;
	background: rgba(255, 255, 255, 0.16);
	margin: 0 4px;
}

.cms-rte__toolbar button {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.16);
	color: rgba(255, 255, 255, 0.9);
	padding: 3px 6px;
	border-radius: 8px;
	cursor: pointer;
	font:
		700 11px/1 system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		Arial;
}

.cms-rte__toolbar button.is-disabled,
.cms-rte__toolbar button:disabled {
	opacity: 0.35;
	filter: grayscale(1);
	cursor: not-allowed;
	background: rgba(255, 255, 255, 0.04);
	border-color: rgba(255, 255, 255, 0.1);
}

.cms-rte__icon {
	font-size: 22px;
	line-height: 1;
}

.cms-rte__icon-label {
	font-size: 10px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.cms-rte__toolbar button[data-tooltip] {
	position: relative;
}

.cms-rte__toolbar button[data-tooltip]::after {
	content: attr(data-tooltip);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	transform: translate(-50%, -4px);
	background: #0f1726;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #f5f7ff;
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 10px;
	letter-spacing: 0.04em;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	box-shadow: 0 6px 14px rgba(4, 8, 16, 0.35);
	transition:
		opacity 120ms ease,
		transform 120ms ease;
	z-index: 5;
}

.cms-rte__toolbar button[data-tooltip]::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: calc(100% + 2px);
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: rgba(255, 255, 255, 0.2);
	opacity: 0;
	pointer-events: none;
	transition: opacity 120ms ease;
	z-index: 4;
}

.cms-rte__toolbar button[data-tooltip]:hover::after,
.cms-rte__toolbar button[data-tooltip]:focus-visible::after {
	opacity: 1;
	transform: translate(-50%, 0);
}

.cms-rte__toolbar button[data-tooltip]:hover::before,
.cms-rte__toolbar button[data-tooltip]:focus-visible::before {
	opacity: 1;
}

.cms-rte__toolbar button:hover {
	background: rgba(43, 194, 107, 0.22);
	border-color: rgba(43, 194, 107, 0.5);
	color: #f5fff8;
}

.cms-rte__lang {
	background: rgba(255, 255, 255, 0.08);
	border: 1px solid rgba(255, 255, 255, 0.16);
	color: rgba(255, 255, 255, 0.9);
	padding: 4px 8px;
	border-radius: 8px;
	font:
		700 12px/1 system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		Arial;
}

.cms-rte__panel {
	margin-top: 10px;
	padding: 12px;
	border-radius: 10px;
	border: 1px solid rgba(18, 22, 32, 0.12);
}

.cms-rte__panel-actions {
	display: flex;
	gap: 8px;
	justify-content: flex-end;
	flex-wrap: wrap;
	margin-top: 8px;
}

.cms-rte pre {
	position: relative;
	cursor: pointer;
	line-height: 1.35;
}

.cms-rte pre.cms-code-block {
	padding-top: 32px;
}

.cms-code-block-wrap {
	position: relative;
}

.cms-code-toolbar {
	position: absolute;
	top: 6px;
	right: 80px;
	display: flex;
	gap: 6px;
	align-items: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.15s ease;
}

.cms-code-block-wrap:hover .cms-code-toolbar,
.cms-code-toolbar:focus-within {
	opacity: 1;
	pointer-events: auto;
}

.cms-code-toolbar__select {
	background: rgba(90, 140, 255, 0.4);
	color: #fff;
	border: 1px solid rgba(90, 140, 255, 0.9);
	border-radius: 8px;
	padding: 4px 8px;
	height: 21px;
	font:
		600 11px/1 system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		Arial;
}

.cms-code-toolbar__btn {
	background: rgba(90, 140, 255, 0.4);
	border: 1px solid rgba(90, 140, 255, 0.9);
	color: #fff;
	padding: 4px 8px;
	border-radius: 8px;
	cursor: pointer;
	font:
		600 11px/1 system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		Arial;
}

.cms-code-toolbar__btn:hover {
	background: rgba(90, 140, 255, 0.7);
	border-color: rgba(90, 140, 255, 1);
	color: #0b1526;
}

.cms-code-toolbar__btn--danger {
	background: rgba(255, 90, 90, 0.4);
	border-color: rgba(255, 90, 90, 0.9);
	color: #fff;
}

.cms-code-toolbar__btn--danger:hover {
	background: rgba(255, 90, 90, 0.7);
	border-color: rgba(255, 90, 90, 1);
	color: #0b1526;
}

.cms-rte .img-stub,
.cms-rte .video-stub {
	position: relative;
	cursor: pointer;
}

.cms-rte .doc-card,
.cms-rte .doc-embed,
.cms-rte .cms-table-wrap {
	position: relative;
}

.cms-rte .flex-accordion-wrapper {
	position: relative;
}

.cms-rte .img-stub .cms-inline-actions,
.cms-rte .video-stub .cms-inline-actions,
.cms-rte .doc-card .cms-inline-actions,
.cms-rte .doc-embed .cms-inline-actions,
.cms-rte .cms-table-wrap .cms-inline-actions,
.cms-rte .flex-accordion-wrapper .cms-inline-actions {
	position: absolute;
	top: -30px;
	right: 0;
	display: flex;
	gap: 6px;
	z-index: 3;
	opacity: 0;
	transform: translateY(-4px);
	transition:
		opacity 120ms ease,
		transform 120ms ease;
}

.cms-rte .img-stub:hover .cms-inline-actions,
.cms-rte .video-stub:hover .cms-inline-actions,
.cms-rte .doc-card:hover .cms-inline-actions,
.cms-rte .doc-embed:hover .cms-inline-actions,
.cms-rte .cms-table-wrap:hover .cms-inline-actions,
.cms-rte .flex-accordion-wrapper:hover .cms-inline-actions {
	opacity: 1;
	transform: translateY(0);
}

/* doc cards now share the standard inline action position */

.cms-rte .img-stub .cms-inline-actions .cms-block__btn,
.cms-rte .video-stub .cms-inline-actions .cms-block__btn,
.cms-rte .doc-card .cms-inline-actions .cms-block__btn,
.cms-rte .doc-embed .cms-inline-actions .cms-block__btn,
.cms-rte .cms-table-wrap .cms-inline-actions .cms-block__btn,
.cms-rte .flex-accordion-wrapper .cms-inline-actions .cms-block__btn {
	padding: 4px 8px;
	font-size: 11px;
	border-radius: 8px;
}

.cms-rte .doc-card {
	overflow: visible;
}

.cms-rte .doc-embed {
	overflow: visible;
	display: flex;
	align-items: center;
	gap: 12px;
	min-height: 120px;
	padding: 16px;
	border-radius: 12px;
	border: 1px dashed rgba(15, 23, 38, 0.25);
	background: rgba(15, 23, 38, 0.04);
}

.cms-doc-embed__placeholder {
	display: flex;
	align-items: center;
	gap: 12px;
}

.cms-doc-embed__icon {
	font-size: 28px;
	color: rgba(15, 23, 38, 0.6);
}

.cms-doc-embed__title {
	font-weight: 700;
	letter-spacing: 0.04em;
}

.cms-doc-embed__text {
	min-width: 0;
}

.cms-doc-embed__meta {
	font-size: 12px;
	opacity: 0.7;
	max-width: 100%;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.cms-doc-embed-preview {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px;
	border-radius: 12px;
	border: 1px dashed rgba(15, 23, 38, 0.25);
	background: rgba(15, 23, 38, 0.04);
	color: #0b1526;
}

.cms-rte .doc-card__link {
	overflow: hidden;
}

.cms-rte .img-stub .cms-inline-caption,
.cms-rte .video-stub .cms-inline-caption {
	margin: 8px 0 0;
	color: #121620;
	font-size: 13px;
}

.cms-rte .tab {
	position: relative;
}

.cms-rte .tab .cms-accordion-actions {
	position: absolute;
	top: 13px;
	right: 35px;
	display: flex;
	gap: 6px;
	z-index: 3;
	opacity: 0;
	pointer-events: none;
	transform: translateY(-4px);
	transition:
		opacity 120ms ease,
		transform 120ms ease;
}

.cms-rte .tab:hover .cms-accordion-actions {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.cms-rte .tab .cms-accordion-actions .cms-block__btn {
	padding: 4px 6px;
	border-radius: 8px;
	font-size: 11px;
}

.cms-rte .tab .cms-accordion-actions .cms-accordion__icon {
	font-size: 14px;
	line-height: 1;
	color: #fff;
	font-weight: bold;
}

.cms-accordion-actions .cms-block__btn--danger {
	color: #fff;
}

.cms-rte .tab .cms-accordion-actions .cms-accordion-btn.is-disabled,
.cms-rte .tab .cms-accordion-actions .cms-accordion-btn:disabled {
	opacity: 0.45;
	cursor: not-allowed;
}

.cms-video-preview .cms-video-placeholder,
.cms-rte .video-stub .cms-video-placeholder {
	min-height: 180px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: rgba(15, 23, 38, 0.08);
	border: 1px dashed rgba(15, 23, 38, 0.25);
	color: rgba(18, 22, 32, 0.7);
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.12em;
	border-radius: 2px;
}

.cms-rte blockquote,
.default-div-wrapper blockquote,
.section blockquote,
.img-text-div-text blockquote,
.lrg-img-text-div-text blockquote,
.two-text-columns-text-left blockquote,
.two-text-columns-text-right blockquote,
.tab-content blockquote,
.cms-block blockquote {
	margin: 10px 0;
	padding: 10px 14px;
	border-left: 3px solid var(--accent);
	background: #f1f3f8;
	color: #121620;
}

.cms-rte table,
.default-div-wrapper table,
.section table,
.img-text-div-text table,
.lrg-img-text-div-text table,
.two-text-columns-text-left table,
.two-text-columns-text-right table,
.tab-content table,
.cms-block table {
	width: 100%;
	border-collapse: collapse;
	margin: 12px 0;
	background: #f8f9fb;
}

.default-div-wrapper table.table-borderless,
.section table.table-borderless,
.img-text-div-text table.table-borderless,
.lrg-img-text-div-text table.table-borderless,
.two-text-columns-text-left table.table-borderless,
.two-text-columns-text-right table.table-borderless,
.tab-content table.table-borderless,
.cms-block table.table-borderless {
	background: transparent;
}

.cms-rte th,
.cms-rte td,
.default-div-wrapper th,
.default-div-wrapper td,
.section th,
.section td,
.img-text-div-text th,
.img-text-div-text td,
.lrg-img-text-div-text th,
.lrg-img-text-div-text td,
.two-text-columns-text-left th,
.two-text-columns-text-left td,
.two-text-columns-text-right th,
.two-text-columns-text-right td,
.tab-content th,
.tab-content td,
.cms-block th,
.cms-block td {
	border: 1px solid rgba(18, 22, 32, 0.15);
	padding: 8px 10px;
	font-size: 13px;
}

.default-div-wrapper table.table-borderless th,
.default-div-wrapper table.table-borderless td,
.section table.table-borderless th,
.section table.table-borderless td,
.img-text-div-text table.table-borderless th,
.img-text-div-text table.table-borderless td,
.lrg-img-text-div-text table.table-borderless th,
.lrg-img-text-div-text table.table-borderless td,
.two-text-columns-text-left table.table-borderless th,
.two-text-columns-text-left table.table-borderless td,
.two-text-columns-text-right table.table-borderless th,
.two-text-columns-text-right table.table-borderless td,
.tab-content table.table-borderless th,
.tab-content table.table-borderless td,
.cms-block table.table-borderless th,
.cms-block table.table-borderless td {
	border: none;
}

.cms-rte th,
.default-div-wrapper th,
.section th,
.img-text-div-text th,
.lrg-img-text-div-text th,
.two-text-columns-text-left th,
.two-text-columns-text-right th,
.tab-content th,
.cms-block th {
	background: #0b1220;
	color: #f5f7ff;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	font-size: 11px;
}

.cms-rte pre,
.default-div-wrapper pre,
.section pre,
.img-text-div-text pre,
.lrg-img-text-div-text pre,
.two-text-columns-text-left pre,
.two-text-columns-text-right pre,
.tab-content pre,
.cms-block pre {
	position: relative;
	background: transparent;
	border: none;
	padding: 0 !important;
	border-radius: 12px;
	overflow: auto;
}

.cms-rte pre {
	padding: 2px 12px;
}

.cms-rte pre code,
.default-div-wrapper pre code,
.section pre code,
.img-text-div-text pre code,
.lrg-img-text-div-text pre code,
.two-text-columns-text-left pre code,
.two-text-columns-text-right pre code,
.tab-content pre code,
.cms-block pre code {
	display: block;
	white-space: pre;
	font-size: 12px;
	line-height: 1.4;
	font-family:
		ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
		"Courier New", monospace;
	tab-size: 2;
}

.cms-rte pre code.hljs,
.default-div-wrapper pre code.hljs,
.section pre code.hljs,
.img-text-div-text pre code.hljs,
.lrg-img-text-div-text pre code.hljs,
.two-text-columns-text-left pre code.hljs,
.two-text-columns-text-right pre code.hljs,
.tab-content pre code.hljs,
.cms-block pre code.hljs {
	position: relative;
	padding: 14px 16px;
	background: #282c34;
	color: #abb2bf;
	border-radius: 12px;
	box-shadow: 0 10px 30px rgba(17, 24, 39, 0.35);
}

.cms-rte pre code.hljs[data-lang]::after,
.default-div-wrapper pre code.hljs[data-lang]::after,
.section pre code.hljs[data-lang]::after,
.img-text-div-text pre code.hljs[data-lang]::after,
.lrg-img-text-div-text pre code.hljs[data-lang]::after,
.two-text-columns-text-left pre code.hljs[data-lang]::after,
.two-text-columns-text-right pre code.hljs[data-lang]::after,
.tab-content pre code.hljs[data-lang]::after,
.cms-block pre code.hljs[data-lang]::after {
	content: attr(data-lang);
	position: absolute;
	top: 10px;
	right: 12px;
	padding: 2px 8px;
	border-radius: 10px;
	background: rgba(15, 23, 42, 0.75);
	color: #e2e8f0;
	font-size: 10px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	pointer-events: none;
}

.cms-rte code,
.default-div-wrapper code,
.section code,
.img-text-div-text code,
.lrg-img-text-div-text code,
.two-text-columns-text-left code,
.two-text-columns-text-right code,
.tab-content code,
.cms-block code {
	background: #e7ecf4;
	padding: 2px 6px;
	border-radius: 6px;
	font-family:
		ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
		"Courier New", monospace;
	font-size: 0.9em;
}

.cms-rte {
	min-height: 140px;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid rgba(18, 22, 32, 0.18);
	background: #ffffff;
	color: #121620;
	font:
		500 14px/1.6 system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		Arial;
	overflow: auto;
}

.cms-admin .cms-rte__editor-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 16px;
	align-items: start;
}

.cms-admin .cms-rte__editor-row.is-solo {
	grid-template-columns: minmax(0, 1fr);
}

.cms-admin .cms-mermaid-preview {
	min-height: 140px;
	padding: 10px 12px;
	border-radius: 10px;
	border: 1px solid rgba(18, 22, 32, 0.18);
	background: #f7f8fb;
	color: #1d2433;
}

.cms-admin .cms-mermaid-preview__header {
	margin-bottom: 8px;
	font:
		700 11px/1.2 system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		Arial;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.7;
}

.cms-admin .cms-mermaid-preview__body {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.cms-admin .cms-mermaid-preview__diagram {
	padding: 10px;
	border-radius: 10px;
	border: 1px solid rgba(18, 22, 32, 0.12);
	background: #ffffff;
	overflow: auto;
}

.cms-admin .cms-mermaid-preview__diagram svg {
	max-width: 100%;
	height: auto;
}

.cms-admin .cms-mermaid-preview__empty,
.cms-admin .cms-mermaid-preview__error {
	padding: 8px 10px;
	border-radius: 8px;
	background: rgba(18, 22, 32, 0.08);
	font:
		500 12px/1.4 system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		Arial;
	color: #5b6270;
}

@media (max-width: 1100px) {
	.cms-admin .cms-rte__editor-row {
		grid-template-columns: minmax(0, 1fr);
	}
}

.cms-rte:focus {
	outline: 2px solid rgba(18, 22, 32, 0.2);
	border-color: rgba(18, 22, 32, 0.35);
}

.cms-field {
	display: flex;
	flex-direction: column;
	gap: 6px;
	margin-bottom: 12px;
}

.cms-field__label {
	font-size: 11px;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	opacity: 0.7;
}

.cms-field__note {
	font-size: 12px;
	opacity: 0.6;
}

.cms-field__input,
.cms-field__select {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.14);
	color: #f5f7ff;
	border-radius: 8px;
	padding: 4.5px 8px;
	font:
		500 13px/1.3 system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		Arial;
}

.cms-field__input--invalid,
.cms-field__select.cms-field__input--invalid {
	border-color: rgba(255, 122, 110, 0.9);
	box-shadow: 0 0 0 1px rgba(255, 122, 110, 0.5);
}

.cms-field__textarea {
	min-height: 180px;
	resize: vertical;
}

.cms-field__input:focus,
.cms-field__select:focus {
	outline: 2px solid rgba(60, 200, 120, 0.35);
	border-color: rgba(60, 200, 120, 0.6);
}

.cms-field__toggle {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	cursor: pointer;
}

.cms-field__checkbox {
	accent-color: #2bc26b;
}

.cms-field__toggle-text {
	font-size: 13px;
	opacity: 0.85;
}

.cms-rte__panel .cms-field__input,
.cms-rte__panel .cms-field__select {
	background: rgba(255, 255, 255, 0.06);
	border-color: rgba(255, 255, 255, 0.14);
	color: #f5f7ff;
}

.cms-field__row {
	display: flex;
	gap: 8px;
	align-items: center;
}

.cms-field__row--heading {
	align-items: center;
}

.cms-field__row--heading .cms-align-toggle {
	margin-left: auto;
}

.cms-field__row .cms-field__input {
	flex: 1;
	height: 28px;
}

.cms-field__row .cms-field__select {
	width: 180px;
	height: 28px;
}

.cms-field__row .cms-btn--inline {
	white-space: nowrap;
}

.cms-field__row .cms-field__toggle {
	margin-left: 8px;
}

.cms-align-toggle {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 2px;
	border-radius: 999px;
	border: 1px solid rgba(255, 255, 255, 0.2);
	background: rgba(8, 12, 20, 0.45);
}

.cms-align-toggle__btn {
	border: 0;
	background: transparent;
	color: rgba(255, 255, 255, 0.7);
	width: 30px;
	height: 26px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition:
		background 160ms ease,
		color 160ms ease,
		transform 160ms ease;
}

.cms-align-toggle__btn .material-icons {
	font-size: 18px;
}

.cms-align-toggle__btn.is-active {
	background: rgba(60, 200, 120, 0.3);
	color: #fff;
}

.cms-align-toggle__btn:hover {
	background: rgba(255, 255, 255, 0.12);
	color: #fff;
	transform: translateY(-1px);
}

.cms-align-toggle__btn[data-tooltip] {
	position: relative;
}

.cms-align-toggle__btn[data-tooltip]::after {
	content: attr(data-tooltip);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	transform: translate(-50%, -4px);
	background: #0f1726;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #f5f7ff;
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 10px;
	letter-spacing: 0.04em;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	box-shadow: 0 6px 14px rgba(4, 8, 16, 0.35);
	transition:
		opacity 120ms ease,
		transform 120ms ease;
	z-index: 5;
}

.cms-align-toggle__btn[data-tooltip]::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: calc(100% + 2px);
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: rgba(255, 255, 255, 0.2);
	opacity: 0;
	pointer-events: none;
	transition: opacity 120ms ease;
	z-index: 4;
}

.cms-align-toggle__btn[data-tooltip]:hover::after,
.cms-align-toggle__btn[data-tooltip]:focus-visible::after {
	opacity: 1;
	transform: translate(-50%, 0);
}

.cms-align-toggle__btn[data-tooltip]:hover::before,
.cms-align-toggle__btn[data-tooltip]:focus-visible::before {
	opacity: 1;
}

.cms-image-preview {
	margin-top: 8px;
	align-self: center;
	position: relative;
	overflow: hidden;
	border-radius: 8px;
	margin-left: auto;
	margin-right: auto;
}

.cms-image-preview--inline {
	margin-top: 0;
	align-self: flex-start;
}

.cms-image-preview__img {
	max-width: 100%;
	border-radius: 8px;
	border: 1px solid rgba(18, 22, 32, 0.15);
	display: block;
}

.cms-image-preview__overlay,
.cms-image-preview__details {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.2s ease;
}

.cms-image-preview__overlay {
	background: rgba(0, 0, 0, 0.55);
}

.cms-image-preview__details {
	flex-direction: column;
	gap: 6px;
	padding: 12px;
	color: #fff;
}

.cms-image-preview__title {
	font-size: 11px;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.cms-image-preview__text {
	font-size: 12px;
	line-height: 1.3;
}

.cms-image-preview--overlay .cms-image-preview__overlay {
	opacity: 0.45;
}

.cms-image-preview--overlay .cms-image-preview__details {
	opacity: 1;
}

.cms-image-preview__img--block {
	width: 100%;
	height: auto;
}

.cms-image-preview__img--thumb {
	width: 96px;
	height: 72px;
	object-fit: cover;
}

.cms-image-preview__img--sm {
	max-width: 360px;
}

.cms-image-preview__img--md {
	max-width: 520px;
}

.cms-image-preview__img--lg {
	max-width: 720px;
}

.cms-image-preview__img--full {
	max-width: none;
	width: 100%;
}

.cms-image-source {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cms-image-display-row {
	display: flex;
	gap: 12px;
	align-items: center;
}

.cms-image-display-row .cms-field__row {
	flex: 1;
	flex-wrap: wrap;
}

.cms-image-settings {
	display: flex;
	gap: 16px;
	align-items: flex-start;
	flex-wrap: wrap;
}

.cms-image-settings__preview {
	flex: 1 1 320px;
	max-width: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
}

.cms-image-settings__preview .doc-card {
	margin: 0 auto;
}

.cms-image-settings__controls {
	flex: 1 1 320px;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.cms-field__stack {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/***********************************************************************
*  Portfolio grid editor
**********************************************************************/
.cms-portfolio-cards {
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.cms-portfolio-controls,
.cms-portfolio-row {
	display: flex;
	gap: 12px;
	flex-wrap: wrap;
	align-items: flex-start;
}

.cms-portfolio-controls .cms-field,
.cms-portfolio-row .cms-field {
	flex: 1 1 260px;
	min-width: 220px;
}

.cms-portfolio-type-controls {
	display: flex;
	flex-direction: column;
	gap: 6px;
}

.cms-portfolio-type-row {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}

.cms-portfolio-type-row .cms-field__input--title {
	flex: 1 1 220px;
	min-width: 180px;
}

.cms-portfolio-type-row .cms-field__input {
	height: 28px;
}

.cms-portfolio-type-row .cms-field__select {
	width: 170px;
	height: 28px;
}

.cms-portfolio-type-row .cms-field__input--category {
	flex: 0 1 160px;
	min-width: 140px;
}

@media (min-width: 1024px) {
	.cms-portfolio-type-row {
		flex-wrap: nowrap;
	}
}

.cms-portfolio-type-controls .cms-field__select {
	width: 180px;
	max-width: 100%;
}

.cms-portfolio-type-controls .cms-field__input {
	flex: 1 1 200px;
	min-width: 180px;
}

.cms-portfolio-type-controls .cms-field__row {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
	align-items: center;
}

.cms-portfolio-type-manager {
	padding: 12px;
	border-radius: 10px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	background: rgba(15, 23, 38, 0.4);
}

.cms-portfolio-summary .cms-rte__editor {
	background: #fff;
	color: #0f1726;
}

.cms-rte__field--light .cms-rte__editor {
	background: #fff;
	color: #0f1726;
}

.cms-portfolio-card__actions {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
}

.cms-portfolio-gallery {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cms-portfolio-gallery__list {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cms-portfolio-gallery__item {
	display: flex;
	align-items: center;
	gap: 8px;
	padding: 6px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.04);
	border: 1px solid rgba(255, 255, 255, 0.08);
}

.cms-portfolio-gallery__thumb {
	width: 48px;
	height: 48px;
	object-fit: cover;
	border-radius: 6px;
	border: 1px solid rgba(255, 255, 255, 0.12);
}

.cms-portfolio-gallery__label {
	flex: 1;
	font-size: 12px;
	color: #f5f7ff;
	word-break: break-all;
}

.cms-btn {
	font:
		700 12px/1.2 system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		Arial;
	border-radius: 10px;
	padding: 6px 10px;
	border: 1px solid rgba(18, 22, 32, 0.2);
	background: rgba(18, 22, 32, 0.08);
	color: #fff;
	cursor: pointer;
}

.cms-btn--primary {
	background: rgba(90, 140, 255, 0.2);
	border-color: rgba(90, 140, 255, 0.5);
}

.cms-btn--primary:hover {
	background: rgba(90, 140, 255, 0.3);
	border-color: rgba(90, 140, 255, 0.65);
}

.cms-btn--info {
	background: rgba(90, 140, 255, 0.35);
	border-color: rgba(90, 140, 255, 0.7);
	color: #fff;
}

.cms-btn--info:hover {
	background: rgba(90, 140, 255, 0.55);
	border-color: rgba(90, 140, 255, 0.9);
}

.cms-btn--success {
	background: rgba(60, 200, 120, 0.25);
	border-color: rgba(60, 200, 120, 0.5);
}

.cms-btn--danger {
	background: rgba(255, 90, 90, 0.2);
	border-color: rgba(255, 90, 90, 0.45);
}

.cms-btn--success:hover {
	background: rgba(60, 200, 120, 0.35);
	border-color: rgba(60, 200, 120, 0.65);
}

.cms-btn--danger:hover {
	background: rgba(255, 90, 90, 0.3);
	border-color: rgba(255, 90, 90, 0.6);
}

.cms-btn--move {
	border-color: rgba(90, 140, 255, 0.9);
	background: rgba(90, 140, 255, 0.4);
	color: #fff;
}

.cms-btn--move:hover {
	background: rgba(90, 140, 255, 0.7);
	border-color: rgba(90, 140, 255, 1);
}

.cms-field__input--muted,
.cms-field__input:disabled,
.cms-field__select:disabled {
	color: rgba(245, 247, 255, 0.45);
	opacity: 0.6;
	cursor: not-allowed;
}

.cms-btn[data-tooltip] {
	position: relative;
}

.cms-btn[data-tooltip]::after {
	content: attr(data-tooltip);
	position: absolute;
	left: 50%;
	bottom: calc(100% + 8px);
	transform: translate(-50%, -4px);
	background: #0f1726;
	border: 1px solid rgba(255, 255, 255, 0.2);
	color: #f5f7ff;
	padding: 4px 8px;
	border-radius: 6px;
	font-size: 10px;
	letter-spacing: 0.04em;
	white-space: nowrap;
	opacity: 0;
	pointer-events: none;
	box-shadow: 0 6px 14px rgba(4, 8, 16, 0.35);
	transition:
		opacity 120ms ease,
		transform 120ms ease;
	z-index: 5;
}

.cms-btn[data-tooltip]::before {
	content: "";
	position: absolute;
	left: 50%;
	bottom: calc(100% + 2px);
	transform: translateX(-50%);
	border: 5px solid transparent;
	border-top-color: rgba(255, 255, 255, 0.2);
	opacity: 0;
	pointer-events: none;
	transition: opacity 120ms ease;
	z-index: 4;
}

.cms-btn[data-tooltip]:hover::after,
.cms-btn[data-tooltip]:focus-visible::after {
	opacity: 1;
	transform: translate(-50%, 0);
}

.cms-btn[data-tooltip]:hover::before,
.cms-btn[data-tooltip]:focus-visible::before {
	opacity: 1;
}

.cms-modal__group--settings {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

.cms-modal__group--intro {
	background: rgba(255, 255, 255, 0.03);
	border-color: rgba(255, 255, 255, 0.1);
}

.cms-modal__group--intro .cms-rte__label,
.cms-modal__group--intro .cms-field__note {
	color: rgba(255, 255, 255, 0.8);
	opacity: 0.85;
}

.cms-accordion-actions-row .cms-btn--move {
	color: #fff;
}

.cms-modal__group-title {
	font-size: 12px;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	opacity: 0.7;
}

.cms-modal__subgroup {
	margin-top: 6px;
}

.cms-modal__block {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 4px;
	cursor: pointer;
}

.cms-modal__block:hover {
	background: rgba(255, 255, 255, 0.06);
}

.cms-modal__page {
	cursor: pointer;
}

.cms-modal__input,
.cms-modal__textarea {
	width: 100%;
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: #fff;
	padding: 8px 10px;
	margin-bottom: 10px;
}

.cms-modal__input:focus,
.cms-modal__textarea:focus {
	outline: none;
	border-color: rgba(255, 255, 255, 0.35);
	box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.08);
}

.cms-modal__textarea {
	min-height: 110px;
	resize: vertical;
}

.cms-modal__note {
	font-weight: 800;
	letter-spacing: 0.02em;
	opacity: 0.85;
}

.cms-note--warning {
	color: #f5c84c;
	font-style: italic;
	text-align: center;
	opacity: 0.95;
}

.cms-modal__note--subtle {
	font-weight: 600;
	font-size: 0.9em;
	opacity: 0.7;
}

.cms-modal__badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin-left: 10px;
	padding: 2px 8px;
	border-radius: 999px;
	font-size: 0.7em;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	background: rgba(255, 183, 3, 0.2);
	border: 1px solid rgba(255, 183, 3, 0.5);
	color: rgba(255, 255, 255, 0.9);
}

.cms-modal__toggle {
	display: inline-flex;
	gap: 8px;
	margin-bottom: 12px;
}

.cms-modal__toggle-btn {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.75);
	padding: 6px 10px;
	border-radius: 10px;
	cursor: pointer;
}

.cms-modal__toggle-btn.is-active {
	background: rgba(60, 200, 120, 0.2);
	border-color: rgba(60, 200, 120, 0.4);
	color: #fff;
}

.cms-modal__toggle-btn:hover {
	background: rgba(255, 255, 255, 0.1);
}

.cms-modal__loading {
	font-weight: 700;
	letter-spacing: 0.02em;
	padding: 24px 0;
	opacity: 0.85;
}

.cms-modal__divider {
	height: 1px;
	background: rgba(255, 255, 255, 0.12);
	margin: 12px 0;
}

.cms-modal__action {
	margin-left: auto;
}

.cms-modal .cms-btn {
	font:
		700 12px/1.2 system-ui,
		-apple-system,
		Segoe UI,
		Roboto,
		Arial;
	border-radius: 10px;
	padding: 6px 10px;
}

.cms-btn.cms-modal__action {
	background: rgba(255, 255, 255, 0.06);
	border: 1px solid rgba(255, 255, 255, 0.12);
	color: rgba(255, 255, 255, 0.85);
	cursor: pointer;
}

.cms-btn.cms-modal__action:disabled {
	opacity: 0.7;
	cursor: not-allowed;
}

.cms-btn.cms-modal__action.cms-btn--danger {
	background: rgba(255, 90, 90, 0.2);
	border-color: rgba(255, 90, 90, 0.4);
	color: #fff;
	cursor: pointer;
}

.cms-btn.cms-modal__action.cms-btn--success {
	background: rgba(60, 200, 120, 0.2);
	border-color: rgba(60, 200, 120, 0.4);
	color: #fff;
	cursor: pointer;
}

.cms-btn.cms-modal__action:not(.cms-btn--danger):not(.cms-btn--success):hover {
	background: rgba(255, 255, 255, 0.08);
}

.cms-btn.cms-modal__action.cms-btn--danger:hover {
	background: rgba(255, 90, 90, 0.3);
	border-color: rgba(255, 90, 90, 0.55);
}

.cms-btn.cms-modal__action.cms-btn--success:hover {
	background: rgba(60, 200, 120, 0.3);
	border-color: rgba(60, 200, 120, 0.55);
}

/***********************************************************************
*  Doc card (insertable anywhere via CMS)
**********************************************************************/
.doc-card {
	background: #fff;
	margin: 20px;
	box-shadow: var(--shadow);
	border-radius: 2px;
	position: relative;
	overflow: hidden;
	max-width: 100%;
}

.doc-card--compact {
	display: inline-block;
	width: 240px;
	max-width: 100%;
	margin: 10px 16px 10px 0;
}

.doc-card.cms-doc-preview {
	margin: 0;
}

.doc-card__link {
	display: flex;
	align-items: center;
	gap: 12px;
	color: #111;
	text-decoration: none;
	padding: 10px 12px;
	position: relative;
}

.doc-card__type-icon {
	font-size: 30px;
	color: rgba(17, 17, 17, 0.75);
	flex: 0 0 auto;
}

.doc-card[data-doc-ext="pdf"] .doc-card__type-icon {
	color: #d32f2f;
}

.doc-card[data-doc-ext="doc"] .doc-card__type-icon,
.doc-card[data-doc-ext="docx"] .doc-card__type-icon {
	color: #2b579a;
}

.doc-card[data-doc-ext="xls"] .doc-card__type-icon,
.doc-card[data-doc-ext="xlsx"] .doc-card__type-icon,
.doc-card[data-doc-ext="csv"] .doc-card__type-icon {
	color: #217346;
}

.doc-card[data-doc-ext="ppt"] .doc-card__type-icon,
.doc-card[data-doc-ext="pptx"] .doc-card__type-icon {
	color: #d24726;
}

.doc-card[data-doc-ext="md"] .doc-card__type-icon,
.doc-card[data-doc-ext="txt"] .doc-card__type-icon,
.doc-card[data-doc-ext="rtf"] .doc-card__type-icon {
	color: #6b7280;
}

.doc-card[data-doc-ext="zip"] .doc-card__type-icon,
.doc-card[data-doc-ext="rar"] .doc-card__type-icon,
.doc-card[data-doc-ext="7z"] .doc-card__type-icon {
	color: #d97706;
}

.doc-card__text {
	display: flex;
	flex-direction: column;
	gap: 3px;
	min-width: 0;
	min-height: 28px;
}

.doc-card__title {
	font-weight: 800;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	margin: 0;
	font-size: 12px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.doc-card__desc {
	margin: 0;
	letter-spacing: 0.06em;
	opacity: 0.9;
	font-size: 12px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.doc-card__desc:empty {
	visibility: hidden;
}

.doc-card__overlay {
	position: absolute;
	inset: 0;
	background: rgba(15, 23, 38, 0.78);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity 160ms ease;
}

.doc-card__overlay-content {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: #fff;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	font-size: 12px;
}

.doc-card__link:hover .doc-card__overlay {
	opacity: 1;
}

/* Optional: subtle hover that matches your “card” language */
.doc-card:hover {
	transform: rotate(-1deg);
}

.doc-card.cms-doc-preview:hover {
	transform: none;
}

.doc-card.cms-doc-preview .doc-card__overlay {
	display: none;
}

/***********************************************************************
*  Doc embed (inline iframe)
**********************************************************************/
.doc-embed {
	background: #0f1726;
	border-radius: 12px;
	box-shadow: var(--shadow);
	overflow: hidden;
	max-width: 100%;
	margin: 20px 0;
}

.doc-embed__frame {
	display: block;
	width: 100%;
	height: clamp(360px, 70vh, 720px);
	border: 0;
	background: #0b1020;
}

@media (max-width: 700px) {
	.doc-embed__frame {
		height: clamp(280px, 60vh, 520px);
	}
}

/***********************************************************************
*  Divider
**********************************************************************/
hr.divider {
	border: 0;
	border-top: 2px solid var(--accent);
	margin: 10px 0;
	opacity: 0.9;
}
