/*
 * CodyCloud product landing system — v1.6.0.
 * One brand, distinct visual language per product.
 */
.cc-product {
	--cc-product-accent: #2388c8;
	--cc-product-accent-soft: rgba(35, 136, 200, 0.12);
	--cc-product-dark: #13293d;
	--cc-product-paper: #f4f7f9;
	--cc-product-line: #d8e0e6;
	color: #13293d;
	overflow: hidden;
}

.cc-product > section {
	position: relative;
}

.cc-product > section:first-of-type {
	isolation: isolate;
	min-height: 620px;
	display: grid;
	align-items: center;
	background: var(--cc-product-dark) !important;
	color: #fff;
}

.cc-product > section:first-of-type::before,
.cc-product > section:first-of-type::after {
	position: absolute;
	z-index: -1;
	content: "";
	pointer-events: none;
}

.cc-product > section:first-of-type::before {
	inset: 0;
	background:
		radial-gradient(circle at 80% 22%, var(--cc-product-accent-soft), transparent 32%),
		linear-gradient(115deg, #13293d 0%, #13293d 58%, #1c425f 100%);
}

.cc-product > section:first-of-type::after {
	right: -130px;
	bottom: -250px;
	width: 640px;
	height: 640px;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 50%;
	box-shadow: 0 0 0 70px rgba(255,255,255,.03), 0 0 0 140px rgba(255,255,255,.018);
}

.cc-product > section:first-of-type h1 {
	max-width: 800px;
	color: #fff;
	font-size: clamp(3rem, 6vw, 5rem) !important;
	line-height: 0.98 !important;
	letter-spacing: -0.05em;
}

.cc-product > section:first-of-type p:not(.cc-eyebrow) {
	color: #d7e1e8 !important;
	line-height: 1.55;
}

.cc-product .cc-eyebrow {
	color: var(--cc-product-accent) !important;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cc-product .wp-block-button__link {
	border: 1px solid var(--cc-product-accent);
	border-radius: 7px;
	background: var(--cc-product-accent);
	box-shadow: none;
	font-weight: 800;
	transition: transform 160ms ease, filter 160ms ease;
}

.cc-product .wp-block-button__link:hover,
.cc-product .wp-block-button__link:focus-visible {
	filter: brightness(0.92);
	transform: translateY(-1px);
}

.cc-product .is-style-outline .wp-block-button__link {
	border-color: rgba(255,255,255,.48);
	background: transparent;
	color: #fff;
}

.cc-product h2 {
	letter-spacing: -0.035em;
}

.cc-product .cc-card,
.cc-product .ccbc-card,
.cc-product .wp-block-table {
	border-color: var(--cc-product-line);
	border-radius: 12px;
	box-shadow: 0 16px 44px rgba(19, 41, 61, 0.08);
}

.cc-product .cc-card {
	transition: border-color 180ms ease, box-shadow 180ms ease, transform 180ms ease;
}

.cc-product .cc-card:hover {
	border-color: var(--cc-product-accent);
	box-shadow: 0 22px 58px rgba(19, 41, 61, 0.13);
	transform: translateY(-3px);
}

.cc-product .wp-block-table {
	overflow: hidden;
	margin-block: 32px;
	background: #fff;
}

.cc-product .wp-block-table table {
	margin: 0;
	border-collapse: collapse;
}

.cc-product .wp-block-table thead {
	background: var(--cc-product-dark);
	color: #fff;
}

.cc-product .wp-block-table th,
.cc-product .wp-block-table td {
	padding: 16px 18px;
	border-color: var(--cc-product-line);
	vertical-align: top;
}

.cc-product .wp-block-table tbody tr:nth-child(even) {
	background: var(--cc-product-paper);
}

.cc-product .wp-block-table a {
	color: var(--cc-product-accent);
	font-weight: 800;
}

.cc-product .ccbc-catalog {
	gap: 20px;
}

.cc-product .ccbc-card {
	background: #fff;
}

/* CerberoSOC: operational console, cyan signal and real product framing. */
.cc-product--soc {
	--cc-product-accent: #22c55e;
	--cc-product-accent-soft: rgba(34, 197, 94, 0.18);
	--cc-product-dark: #071b2a;
	--cc-product-paper: #f1f8f5;
}

.cc-product--soc > section:first-of-type::before {
	background:
		linear-gradient(rgba(34,197,94,.055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(34,197,94,.055) 1px, transparent 1px),
		radial-gradient(circle at 78% 28%, rgba(34,197,94,.2), transparent 31%),
		linear-gradient(120deg,#071b2a 0%,#13293d 68%,#123a36 100%);
	background-size: 42px 42px,42px 42px,auto,auto;
}

.cc-product--soc .cc-illustration {
	position: relative;
	overflow: hidden;
	padding: 12px;
	border: 1px solid rgba(34,197,94,.28);
	border-radius: 18px;
	background: rgba(7,27,42,.65);
	box-shadow: 0 32px 80px rgba(0,0,0,.35), inset 0 0 40px rgba(34,197,94,.05);
}

.cc-product--soc .cc-illustration svg {
	display: none;
}

.cc-product--soc .cc-illustration::before {
	display: block;
	aspect-ratio: 16 / 10;
	border-radius: 10px;
	background: url("../img/soc/cerbero-soc-dashboard.webp") center / cover no-repeat;
	content: "";
}

.cc-product--soc .cc-illustration::after {
	position: absolute;
	right: 24px;
	bottom: 24px;
	padding: 7px 10px;
	border-left: 3px solid #22c55e;
	background: rgba(7,27,42,.88);
	color: #fff;
	font-size: .66rem;
	font-weight: 800;
	letter-spacing: .08em;
	text-transform: uppercase;
	content: "Evidenza reale · dati anonimizzati";
}

.cc-product--soc .cc-pillars {
	counter-reset: soc-step;
}

.cc-product--soc .cc-pillar {
	position: relative;
	padding-top: 58px !important;
}

.cc-product--soc .cc-pillar::before {
	position: absolute;
	top: 22px;
	left: 24px;
	width: 23px;
	height: 3px;
	background: #22c55e;
	content: "";
}

/* Pentest: forensic report aesthetic, evidence before decoration. */
.cc-product--pentest {
	--cc-product-accent: #22c55e;
	--cc-product-accent-soft: rgba(34,197,94,.17);
	--cc-product-dark: #102536;
	--cc-product-paper: #f3f8f5;
}

.cc-product--pentest > section:first-of-type {
	min-height: 570px;
}

.cc-product--pentest > section:first-of-type::before {
	background:
		linear-gradient(90deg, rgba(34,197,94,.08) 1px, transparent 1px),
		linear-gradient(rgba(34,197,94,.08) 1px, transparent 1px),
		radial-gradient(circle at 50% 10%, rgba(34,197,94,.2), transparent 32%),
		#102536;
	background-size: 64px 64px,64px 64px,auto,auto;
}

.cc-product--pentest > section:first-of-type h1 {
	max-width: 900px;
	margin-inline: auto;
}

.cc-product--pentest #piani {
	background: linear-gradient(180deg,#f3f8f5,#fff) !important;
}

.cc-product--pentest .ccbc-card::before {
	display: block;
	width: 44px;
	height: 4px;
	margin-bottom: 18px;
	background: #22c55e;
	content: "";
}

.cc-product--pentest .cc-product-proof {
	border-bottom: 1px solid #d8e0e6;
	background: #fff;
}

.cc-product--pentest .cc-product-proof .wp-block-column {
	padding: 10px 24px;
	border-left: 3px solid #22c55e;
}

.cc-product--pentest .cc-product-proof p {
	margin: 0;
	line-height: 1.5;
}

/* Realms Hosting: infrastructure, depth and uptime. */
.cc-product--hosting {
	--cc-product-accent: #2388c8;
	--cc-product-accent-soft: rgba(35,136,200,.25);
	--cc-product-dark: #0d2234;
	--cc-product-paper: #eef6fb;
}

.cc-product--hosting > section:first-of-type::before {
	background:
		linear-gradient(90deg,rgba(13,34,52,.97) 0%,rgba(13,34,52,.88) 54%,rgba(13,34,52,.32) 100%),
		url("../images/bg-datacenter.webp") center right / cover no-repeat;
}

.cc-product--hosting .cc-illustration {
	padding: 16px;
	border: 1px solid rgba(35,136,200,.32);
	border-radius: 18px;
	background: rgba(13,34,52,.7);
	backdrop-filter: blur(5px);
}

.cc-product--hosting #pacchetti {
	background: linear-gradient(180deg,#eef6fb 0%,#fff 100%);
}

.cc-product--hosting .ccbc-card {
	border-top: 4px solid #2388c8;
}

.cc-product--hosting .cc-product-proof,
.cc-product--backup .cc-product-proof {
	border-bottom: 1px solid #d8e0e6;
	background: #fff;
}

.cc-product--hosting .cc-product-proof .wp-block-column,
.cc-product--backup .cc-product-proof .wp-block-column {
	padding: 10px 24px;
	border-left: 3px solid var(--cc-product-accent);
}

.cc-product--hosting .cc-product-proof p,
.cc-product--backup .cc-product-proof p {
	margin: 0;
	line-height: 1.5;
}

/* NIS2: governance dashboard, strong hierarchy and deadline signal. */
.cc-product--nis2 {
	--cc-product-accent: #22c55e;
	--cc-product-accent-soft: rgba(34,197,94,.16);
	--cc-product-dark: #13293d;
	--cc-product-paper: #f2f5f7;
}

.cc-product--nis2 > section:first-of-type::before {
	background:
		linear-gradient(135deg,transparent 70%,rgba(34,197,94,.08) 70%),
		radial-gradient(circle at 50% 0%,rgba(35,136,200,.25),transparent 35%),
		#13293d;
}

.cc-product--nis2 .cc-countdown {
	max-width: 720px;
	margin-inline: auto;
}

.cc-product--nis2 .cc-countdown__box {
	border: 1px solid rgba(34,197,94,.3);
	background: rgba(255,255,255,.07);
	box-shadow: none;
}

.cc-product--nis2 .cc-countdown__num {
	color: #22c55e;
}

.cc-product--nis2 .cc-product-proof {
	border-bottom: 1px solid #d8e0e6;
	background: #fff;
}

.cc-product--nis2 .cc-product-proof .wp-block-column {
	position: relative;
	padding: 10px 22px 10px 28px;
}

.cc-product--nis2 .cc-product-proof .wp-block-column::before {
	position: absolute;
	top: 14px;
	left: 0;
	width: 10px;
	height: 10px;
	border: 3px solid #22c55e;
	border-radius: 50%;
	content: "";
}

.cc-product--nis2 .cc-product-proof p {
	margin: 0;
	line-height: 1.5;
}

.cc-product--nis2 .cc-mini--key {
	border-color: #22c55e;
	box-shadow: 0 18px 46px rgba(34,197,94,.12);
}

/* Backup: secondary product, calm continuity language. */
.cc-product--backup {
	--cc-product-accent: #2388c8;
	--cc-product-accent-soft: rgba(35,136,200,.2);
	--cc-product-dark: #13293d;
	--cc-product-paper: #eef6fb;
}

.cc-product--backup > section:first-of-type {
	min-height: 520px;
}

.cc-product--backup > section:first-of-type::before {
	background:
		radial-gradient(circle at 50% 15%,rgba(35,136,200,.3),transparent 34%),
		linear-gradient(145deg,#13293d,#173f5d);
}

.cc-product--backup .ccbc-catalog-single {
	max-width: 620px;
	margin-inline: auto;
}

.cc-contact-band {
	position: relative;
	isolation: isolate;
}

.cc-contact-band::before {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: radial-gradient(circle at 50% 0%,rgba(35,136,200,.1),transparent 44%);
	content: "";
}

/* Company proof pages: quieter than product landings, built around evidence. */
.cc-proof-page {
	overflow: hidden;
}

.cc-proof-page > section:first-of-type {
	position: relative;
	isolation: isolate;
	min-height: 520px;
	display: grid;
	align-items: center;
	background: #13293d !important;
	color: #fff;
}

.cc-proof-page > section:first-of-type::before {
	position: absolute;
	z-index: -1;
	inset: 0;
	background: radial-gradient(circle at 50% 0%,rgba(35,136,200,.28),transparent 38%),linear-gradient(125deg,#13293d,#1a405e);
	content: "";
}

.cc-proof-page--datacenter > section:first-of-type::before {
	background: linear-gradient(90deg,rgba(19,41,61,.96),rgba(19,41,61,.6)),url("../images/bg-datacenter.webp") center / cover no-repeat;
}

.cc-proof-page > section:first-of-type h1 {
	color: #fff;
	font-size: clamp(3rem,6vw,5rem) !important;
	line-height: .98 !important;
	letter-spacing: -.05em;
}

.cc-proof-page > section:first-of-type p:not(.cc-eyebrow) {
	color: #d7e1e8 !important;
}

.cc-proof-page .cc-card {
	border-radius: 12px;
	box-shadow: 0 16px 44px rgba(19,41,61,.08);
}

@media (max-width: 800px) {
	.cc-product > section:first-of-type {
		min-height: auto;
	}

	.cc-product > section:first-of-type h1 {
		font-size: clamp(2.6rem,11vw,4rem) !important;
	}

	.cc-product .wp-block-table {
		overflow-x: auto;
	}

	.cc-product .wp-block-table table {
		min-width: 720px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.cc-product .cc-card,
	.cc-product .wp-block-button__link {
		transition: none;
	}
}
