/*
Theme Name: CybersecurityDB
Theme URI: https://cybersecuritydb.example
Author: CybersecurityDB
Description: Vendor intelligence directory for the cybersecurity industry. Custom vendor database with an editor-researched Capability Score and cached vendor news.
Version: 1.2
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: cyberdb
*/

.cdb-hero {
	position: relative;
	background: #fff;
	border-bottom: 1px solid #e2e8f0;
}
.cdb-hero__inner { padding-top: 4rem; }
.cdb-hero__spacer { height: 4rem; }

.cdb-scorecard__scale {
	display: flex;
	flex-wrap: wrap;
	gap: 8px 18px;
	margin-top: 12px;
	padding-top: 12px;
	border-top: 1px solid #e2e8f0;
}
.cdb-scorecard__item {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 500;
	color: #475569;
}

.cdb-banner {
	display: block;
	position: relative;
	overflow: hidden;
	width: 100%;
	border-radius: 8px;
	background: #e2e8f0;
	line-height: 0;
	transition: transform 0.15s ease, box-shadow 0.15s ease;
}
a.cdb-banner:hover { transform: translateY(-1px); box-shadow: 0 10px 24px -12px rgba(15, 23, 42, 0.45); }
.cdb-banner picture,
.cdb-banner img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.cdb-banner-wrap--home { margin: 3rem 0 4rem; }
.cdb-banner--home {
	margin: 0 auto;
	aspect-ratio: 1232 / 160;
}

.cdb-banner-pair {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin-bottom: 3.5rem;
}
.cdb-banner--vendor { aspect-ratio: 600 / 150; }

@media (min-width: 768px) {
	.cdb-banner-pair {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 24px;
	}
}
@media (max-width: 767px) {
	.cdb-banner--home.cdb-banner--has-mobile { aspect-ratio: 640 / 200; }
	.cdb-banner-wrap--home { margin: 2.5rem 0 3rem; }
}
@media (min-width: 1280px) {
	.cdb-banner--home {
		width: 1232px;
		height: 160px;
		aspect-ratio: auto;
	}
	.cdb-banner-pair {
		grid-template-columns: 600px 600px;
		gap: 32px;
		justify-content: space-between;
	}
	.cdb-banner--vendor {
		width: 600px;
		height: 150px;
		aspect-ratio: auto;
	}
}

.cdb-dash-list { list-style: none; margin: 0; padding: 0; }
.cdb-dash-list > li {
	position: relative;
	padding-left: 14px;
}
.cdb-dash-list > li::before {
	content: "\2013";
	position: absolute;
	left: 0;
	top: 0;
	color: #94a3b8;
}

.wpcf7 {
	margin: 1.5rem 0;
	padding: 24px;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	background: #fff;
	font-size: 14px;
	color: #334155;
}
.wpcf7 form > p,
.wpcf7 form .cdb-cf7-row > p,
.prose .wpcf7 p {
	margin: 0 0 18px;
}
.wpcf7 form > p:last-of-type { margin-bottom: 0; }
.wpcf7 label {
	display: block;
	font-size: 14px;
	font-weight: 500;
	line-height: 1.4;
	color: #334155;
}
.wpcf7 label > br { display: none; }
.wpcf7 .wpcf7-form-control-wrap {
	display: block;
	margin-top: 6px;
}
.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="url"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="number"],
.wpcf7 input[type="date"],
.wpcf7 input[type="password"],
.wpcf7 select,
.wpcf7 textarea {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: 9px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	background: #fff;
	font: inherit;
	font-size: 14px;
	line-height: 1.5;
	color: #0f172a;
	box-shadow: none;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
}
.wpcf7 textarea { min-height: 140px; resize: vertical; }
.wpcf7 select {
	padding-right: 36px;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16' fill='none' stroke='%2364748b' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 6l4 4 4-4'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 12px center;
}
.wpcf7 input::placeholder,
.wpcf7 textarea::placeholder { color: #94a3b8; }
.wpcf7 input:focus,
.wpcf7 select:focus,
.wpcf7 textarea:focus {
	outline: none;
	border-color: #818cf8;
	box-shadow: 0 0 0 3px rgba(99, 102, 241, 0.15);
}

.wpcf7 .wpcf7-checkbox,
.wpcf7 .wpcf7-radio { display: flex; flex-wrap: wrap; gap: 8px 18px; }
.wpcf7 .wpcf7-list-item { margin: 0; }
.wpcf7 .wpcf7-list-item label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-weight: 400;
	cursor: pointer;
}
.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
	width: 16px;
	height: 16px;
	margin: 0;
	accent-color: #4f46e5;
}
.wpcf7 .wpcf7-acceptance .wpcf7-list-item-label { color: #475569; font-size: 13px; }
.wpcf7 .wpcf7-acceptance a { color: #4f46e5; }

.wpcf7 input[type="file"] {
	display: block;
	width: 100%;
	padding: 8px;
	border: 1px dashed #cbd5e1;
	border-radius: 6px;
	background: #f8fafc;
	font-size: 13px;
	color: #475569;
}
.wpcf7 input[type="file"]::file-selector-button {
	margin-right: 10px;
	padding: 6px 12px;
	border: 1px solid #cbd5e1;
	border-radius: 6px;
	background: #fff;
	font: inherit;
	color: #334155;
	cursor: pointer;
}

.wpcf7 input[type="submit"],
.wpcf7 button[type="submit"],
.wpcf7 .wpcf7-submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 12px 24px;
	border: 0;
	border-radius: 6px;
	background: #4f46e5;
	font: inherit;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.25;
	color: #fff;
	cursor: pointer;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.08);
	transition: background-color 0.15s ease, box-shadow 0.15s ease;
	-webkit-appearance: none;
	appearance: none;
}
.wpcf7 .wpcf7-submit:hover { background: #4338ca; box-shadow: 0 4px 10px -2px rgba(79, 70, 229, 0.35); }
.wpcf7 .wpcf7-submit:focus-visible { outline: none; box-shadow: 0 0 0 2px #fff, 0 0 0 4px #818cf8; }
.wpcf7 .wpcf7-submit:disabled { opacity: 0.6; cursor: not-allowed; }
.wpcf7 .wpcf7-spinner { margin: 0 0 0 12px; vertical-align: middle; background-color: #4f46e5; }

.wpcf7 .wpcf7-not-valid { border-color: #fda4af !important; }
.wpcf7 .wpcf7-not-valid:focus { box-shadow: 0 0 0 3px rgba(244, 63, 94, 0.15) !important; }
.wpcf7 .wpcf7-not-valid-tip {
	display: block;
	margin-top: 6px;
	font-size: 12px;
	font-weight: 500;
	color: #e11d48;
}

.wpcf7 form .wpcf7-response-output {
	margin: 18px 0 0;
	padding: 10px 14px;
	border: 1px solid #e2e8f0;
	border-radius: 6px;
	background: #f8fafc;
	font-size: 13px;
	line-height: 1.5;
	color: #334155;
}
.wpcf7 form.sent .wpcf7-response-output { border-color: #a7f3d0; background: #ecfdf5; color: #047857; }
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output { border-color: #fde68a; background: #fffbeb; color: #b45309; }
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output { border-color: #fecdd3; background: #fff1f2; color: #be123c; }

.cdb-cf7-row { display: grid; grid-template-columns: 1fr; gap: 0 16px; }
@media (min-width: 640px) {
	.cdb-cf7-row { grid-template-columns: 1fr 1fr; }
}

.cdb-h1-suffix {
	font-weight: 500;
	color: #64748b;
}

.cdb-share__list {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.cdb-share__list > li { margin: 0; padding: 0; }
.cdb-share__list > li[hidden] { display: none; }
.cdb-share__btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 36px;
	height: 36px;
	padding: 0;
	border: 1px solid #e2e8f0;
	border-radius: 9999px;
	background: #f8fafc;
	color: #475569;
	line-height: 0;
	cursor: pointer;
	text-decoration: none;
	transition: color 0.15s ease, border-color 0.15s ease, background-color 0.15s ease;
	-webkit-tap-highlight-color: transparent;
}
.cdb-share__btn:hover,
.cdb-share__btn:focus-visible {
	border-color: #c7d2fe;
	background: #eef2ff;
	color: #4f46e5;
}
.cdb-share__btn:focus-visible { outline: 2px solid #818cf8; outline-offset: 2px; }
.cdb-share__icon { display: block; width: 16px; height: 16px; }

.cdb-share__copied-icon { display: none; }
.cdb-share__btn.is-copied { border-color: #a7f3d0; background: #ecfdf5; color: #059669; }
.cdb-share__btn.is-copied .cdb-share__copy-icon { display: none; }
.cdb-share__btn.is-copied .cdb-share__copied-icon { display: block; }

.cdb-share-bar {
	position: -webkit-sticky;
	position: sticky;
	bottom: 12px;
	bottom: calc(12px + env(safe-area-inset-bottom, 0px));
	z-index: 40;
	margin-top: 3rem;
}
.cdb-share-bar--contained {
	max-width: 80rem;
	margin-left: auto;
	margin-right: auto;
	padding: 0 1.5rem;
}
.cdb-share-bar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px 20px;
	padding: 12px 16px;
	border: 1px solid #e2e8f0;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 10px 30px -12px rgba(15, 23, 42, 0.25);
	-webkit-backdrop-filter: saturate(1.4) blur(8px);
	backdrop-filter: saturate(1.4) blur(8px);
}
.cdb-share-bar__label {
	margin: 0;
	font-size: 14px;
	line-height: 1.35;
	color: #475569;
}
.cdb-share-bar__label strong { font-weight: 600; color: #0f172a; }
.cdb-share--bar .cdb-share__list { justify-content: flex-end; gap: 6px; }

@media (max-width: 1023px) {
	.cdb-share-bar__inner {
		flex-direction: column;
		align-items: stretch;
		gap: 8px;
		padding: 10px 12px;
	}
	.cdb-share-bar__label {
		font-size: 13px;
		white-space: nowrap;
		overflow: hidden;
		text-overflow: ellipsis;
	}
	.cdb-share--bar {
		margin: 0 -12px;
		overflow-x: auto;
		overscroll-behavior-x: contain;
		scrollbar-width: none;
		-webkit-overflow-scrolling: touch;
		-webkit-mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 24px), transparent 100%);
		mask-image: linear-gradient(90deg, transparent 0, #000 12px, #000 calc(100% - 24px), transparent 100%);
	}
	.cdb-share--bar::-webkit-scrollbar { display: none; }
	.cdb-share--bar .cdb-share__list {
		flex-wrap: nowrap;
		justify-content: flex-start;
		width: max-content;
		padding: 0 12px;
	}
}
@media (max-width: 639px) {
	.cdb-share-bar { bottom: 8px; bottom: calc(8px + env(safe-area-inset-bottom, 0px)); margin-top: 2rem; }
	.cdb-share__btn { width: 38px; height: 38px; }
}

@media print {
	.cdb-share, .cdb-share-bar { display: none !important; }
}

 .page-id-22 .cdb-share-bar {
	display:none;
}

 .page-id-24 .cdb-share-bar {
	display:none;
}
