/* ============================================================
   WP Wizards site styles
   Child theme: Divi-Child/assets/css/wpw.css

   Enqueued automatically by the WP Wizards Divi child theme.
   Outfit is loaded from functions.php. Wrap a section (or a
   Divi Code module) in .wpw to opt in.
   ============================================================ */

:root {
	--wpw-accent: #52d3ed;
	--wpw-purple: #381962;
	--wpw-bg: #07040f;
	--wpw-card: rgba(18, 10, 38, 0.78);
	--wpw-card-solid: #140c28;
	--wpw-text: #ffffff;
	--wpw-muted: rgba(255, 255, 255, 0.78);
	--wpw-faint: rgba(255, 255, 255, 0.55);
	--wpw-line: rgba(82, 211, 237, 0.28);
	--wpw-radius: 22px;
	--wpw-radius-sm: 16px;
	--wpw-font: "Outfit", "Montserrat", "Helvetica Neue", Arial, sans-serif;
}

.wpw-preview {
	margin: 0;
	background: var(--wpw-bg);
}

.wpw,
.wpw *,
.wpw *::before,
.wpw *::after {
	box-sizing: border-box;
}

.wpw {
	position: relative;
	overflow: hidden;
	margin: 0 auto;
	padding: clamp(48px, 7vw, 96px) clamp(20px, 5vw, 64px) clamp(64px, 8vw, 112px);
	color: var(--wpw-text);
	font-family: var(--wpw-font);
	font-size: 16px;
	line-height: 1.6;
	background:
		radial-gradient(ellipse 70% 55% at 12% 8%, rgba(56, 25, 98, 0.85), transparent 58%),
		radial-gradient(ellipse 50% 40% at 92% 12%, rgba(82, 211, 237, 0.14), transparent 52%),
		radial-gradient(ellipse 60% 45% at 50% 100%, rgba(56, 25, 98, 0.7), transparent 58%),
		var(--wpw-bg);
	-webkit-font-smoothing: antialiased;
}

.wpw a {
	color: var(--wpw-accent);
	text-decoration: none;
}

.wpw h1,
.wpw h2,
.wpw h3,
.wpw p,
.wpw ul {
	margin: 0;
	padding: 0;
	font-family: inherit;
}

.wpw-inner {
	position: relative;
	z-index: 1;
	width: min(1180px, 100%);
	margin: 0 auto;
}

.wpw-section {
	margin-bottom: clamp(72px, 9vw, 112px);
}

.wpw-section:last-child {
	margin-bottom: 0;
}

/* ---------- Type ---------- */

.wpw-eyebrow {
	display: inline-block;
	margin-bottom: 18px;
	color: var(--wpw-accent);
	font-size: 0.78rem;
	font-weight: 700;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

.wpw-title {
	margin-bottom: 22px;
	color: var(--wpw-text);
	font-size: clamp(2.35rem, 5.6vw, 4.35rem);
	font-weight: 800;
	line-height: 0.95;
	letter-spacing: 0.02em;
	text-transform: uppercase;
}

.wpw-title span {
	display: block;
	margin-top: 0.12em;
	font-size: 0.42em;
	font-weight: 700;
	letter-spacing: 0.18em;
	color: var(--wpw-accent);
}

.wpw-lead {
	max-width: 38em;
	margin-bottom: 28px;
	color: var(--wpw-muted);
	font-size: clamp(1rem, 1.4vw, 1.12rem);
	font-weight: 400;
	line-height: 1.7;
}

.wpw-section-head {
	margin: 0 0 36px;
	color: var(--wpw-text);
	font-size: clamp(1.8rem, 4vw, 2.8rem);
	font-weight: 800;
	letter-spacing: 0.06em;
	line-height: 1.05;
	text-transform: uppercase;
}

.wpw-index {
	display: block;
	margin-bottom: 28px;
	color: var(--wpw-accent);
	font-size: 0.8rem;
	font-weight: 700;
	letter-spacing: 0.14em;
}

/* ---------- Hero ---------- */

.wpw-hero {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, 0.95fr);
	gap: clamp(32px, 5vw, 72px);
	align-items: center;
}

/* ---------- Callout / panel / badge ---------- */

.wpw-callout {
	max-width: 40em;
	padding: 22px 24px 24px;
	border: 1px solid var(--wpw-accent);
	border-radius: var(--wpw-radius-sm);
	background: rgba(56, 25, 98, 0.28);
}

.wpw-callout h2 {
	margin-bottom: 8px;
	color: var(--wpw-accent);
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.wpw-callout p {
	color: var(--wpw-muted);
	font-size: 0.98rem;
	line-height: 1.65;
}

.wpw-panel {
	position: relative;
	padding: clamp(28px, 3.5vw, 42px);
	border: 1px solid var(--wpw-line);
	border-radius: 28px;
	background:
		linear-gradient(180deg, rgba(82, 211, 237, 0.07), transparent 28%),
		var(--wpw-card);
	box-shadow:
		0 0 0 1px rgba(255, 255, 255, 0.03) inset,
		0 24px 60px rgba(0, 0, 0, 0.35),
		0 0 80px rgba(82, 211, 237, 0.12);
	backdrop-filter: blur(10px);
}

.wpw-badge {
	display: inline-block;
	margin-bottom: 22px;
	padding: 7px 14px;
	border-radius: 999px;
	background: var(--wpw-accent);
	color: #081018;
	font-size: 0.68rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.wpw-panel-title {
	margin-bottom: 14px;
	color: var(--wpw-text);
	font-size: clamp(1.55rem, 2.4vw, 2.05rem);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}

.wpw-panel-copy {
	margin-bottom: 28px;
	color: var(--wpw-muted);
	font-size: 0.98rem;
	line-height: 1.65;
}

.wpw-mini-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}

.wpw-mini {
	padding: 16px 16px 18px;
	border: 1px solid rgba(82, 211, 237, 0.16);
	border-radius: 14px;
	background: rgba(7, 4, 15, 0.45);
}

.wpw-mini h3 {
	margin-bottom: 6px;
	color: var(--wpw-text);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.wpw-mini p {
	color: var(--wpw-accent);
	font-size: 0.92rem;
	font-weight: 500;
	line-height: 1.45;
}

/* ---------- Cards / steps / shots ---------- */

.wpw-cards {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
}

.wpw-card {
	padding: 26px 24px 28px;
	border: 1px solid rgba(82, 211, 237, 0.18);
	border-top-color: rgba(82, 211, 237, 0.42);
	border-radius: var(--wpw-radius);
	background: linear-gradient(180deg, rgba(82, 211, 237, 0.06), transparent 34%), var(--wpw-card-solid);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
}

.wpw-card h3 {
	margin-bottom: 12px;
	color: var(--wpw-text);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.06em;
	line-height: 1.2;
	text-transform: uppercase;
}

.wpw-card p {
	color: var(--wpw-muted);
	font-size: 0.95rem;
	line-height: 1.6;
}

.wpw-steps {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

.wpw-step {
	padding: 28px 26px 30px;
	border: 1px solid var(--wpw-line);
	border-radius: var(--wpw-radius);
	background: rgba(18, 10, 38, 0.72);
}

.wpw-step h3 {
	margin-bottom: 12px;
	color: var(--wpw-text);
	font-size: 1.15rem;
	font-weight: 800;
	letter-spacing: 0.05em;
	text-transform: uppercase;
}

.wpw-step p {
	color: var(--wpw-muted);
	font-size: 0.98rem;
	line-height: 1.65;
}

.wpw-shots {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.wpw-shot {
	overflow: hidden;
	border: 1px solid var(--wpw-line);
	border-radius: var(--wpw-radius);
	background: var(--wpw-card-solid);
	box-shadow: 0 12px 30px rgba(0, 0, 0, 0.22);
}

.wpw-shot img {
	display: block;
	width: 100%;
	height: auto;
}

.wpw-shot figcaption {
	padding: 14px 18px 16px;
	color: var(--wpw-faint);
	font-size: 0.88rem;
}

/* ---------- CTA ---------- */

.wpw-cta {
	text-align: center;
}

.wpw-cta-copy {
	max-width: 36em;
	margin: 0 auto 28px;
	color: var(--wpw-faint);
	font-size: 1.02rem;
}

.wpw-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 260px;
	padding: 18px 42px;
	border: 0;
	border-radius: 999px;
	background: var(--wpw-accent);
	color: #081018 !important;
	font-family: var(--wpw-font);
	font-size: 1.05rem;
	font-weight: 800;
	letter-spacing: 0.01em;
	line-height: 1;
	box-shadow: 0 10px 40px rgba(82, 211, 237, 0.38);
	transition: transform 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.wpw-btn:hover,
.wpw-btn:focus {
	background: #7ee3f5;
	color: #081018 !important;
	transform: translateY(-2px);
	box-shadow: 0 16px 48px rgba(82, 211, 237, 0.5);
}

.wpw-fineprint {
	margin-top: 18px;
	color: var(--wpw-faint);
	font-size: 0.88rem;
}

/* ---------- Responsive ---------- */

@media (max-width: 980px) {
	.wpw-hero,
	.wpw-cards,
	.wpw-steps,
	.wpw-shots {
		grid-template-columns: 1fr 1fr;
	}

	.wpw-hero {
		gap: 36px;
	}
}

@media (max-width: 700px) {
	.wpw-hero,
	.wpw-cards,
	.wpw-steps,
	.wpw-shots,
	.wpw-mini-grid {
		grid-template-columns: 1fr;
	}

	.wpw-title {
		font-size: clamp(2.1rem, 11vw, 3rem);
	}
}

/* ---------- WooCommerce product field ---------- */

.wpw-hosting-url {
	margin: 15px 0;
}

.wpw-hosting-url label {
	display: block;
	margin-bottom: 6px;
	font-weight: 600;
}

.wpw-hosting-url input {
	width: 100%;
	max-width: 400px;
	padding: 10px;
	border: 1px solid #ccc;
	border-radius: 4px;
}

.wpw-image-license {
	margin: 12px 0 6px;
}
