/*
Theme Name: Nexora
Theme URI: https://nexora-sg.com
Author: Nexora Systems Group SIA
Description: Custom block theme for Nexora Systems Group SIA — web development and IT consulting company.
Version: 1.2.0
Requires at least: 6.5
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: nexora
*/

/* ---------- Header ---------- */
header.wp-block-template-part {
	position: sticky;
	top: 0;
	z-index: 100;
}

.nx-header {
	background: rgb(10 15 30);
	border-bottom: 2px solid #fff;
}

/* Remove default gap between root blocks (header/main/footer) */
body .wp-site-blocks > * {
	margin-block-start: 0;
}

.nx-header .wp-block-site-title a {
	font-weight: 800;
	letter-spacing: 0.02em;
	text-decoration: none;
	color: #ffffff;
}

.nx-header .wp-block-site-title a:hover {
	color: #06b6d4;
}

.nx-header .wp-block-navigation a {
	font-weight: 500;
	font-size: 0.95rem;
}

.nx-header .wp-block-navigation a:hover {
	color: #06b6d4;
	text-decoration: none;
}

/* ---------- Hero ---------- */
.nx-hero {
	background-color: #0a0f1e;
	background-image:
		radial-gradient(ellipse 60% 50% at 15% 10%, rgba(124, 58, 237, 0.38), transparent 60%),
		radial-gradient(ellipse 45% 40% at 55% 0%, rgba(236, 72, 153, 0.16), transparent 65%),
		radial-gradient(ellipse 50% 40% at 85% 90%, rgba(6, 182, 212, 0.2), transparent 60%);
}

.nx-kicker {
	letter-spacing: 0.18em;
	text-transform: uppercase;
	font-weight: 600;
}

/* ---------- Cards ---------- */
.nx-card {
	border: 1px solid #e2e8f0;
	box-shadow: 0 1px 2px rgba(15, 23, 42, 0.04);
	transition: transform 0.2s ease, box-shadow 0.2s ease;
	height: 100%;
}

.nx-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 12px 24px -8px rgba(15, 23, 42, 0.15);
}

.nx-card-dark {
	border: 1px solid rgba(255, 255, 255, 0.1);
	transition: transform 0.2s ease;
	height: 100%;
}

.nx-card-dark:hover {
	transform: translateY(-4px);
	border-color: rgba(6, 182, 212, 0.4);
}

.nx-icon {
	font-size: 1.8rem;
	line-height: 1;
}

/* Card photos */
.nx-card .nx-card-photo {
	margin: 0 0 1.25rem;
}

.nx-card .nx-card-photo img {
	display: block;
	width: 100%;
	aspect-ratio: 16 / 10;
	object-fit: cover;
	border-radius: 10px;
}

/* Process step covers */
.nx-step {
	overflow: hidden;
	height: 100%;
}

.nx-step .wp-block-cover__inner-container {
	padding: 0.5rem;
	align-self: stretch;
	display: flex;
	flex-direction: column;
}

.nx-step .wp-block-cover__inner-container > * {
	margin-left: 0;
	margin-right: 0;
	width: 100%;
	max-width: none;
}

/* number pinned to the top left, title and text pushed to the bottom */
.nx-step .wp-block-cover__inner-container > h3 {
	margin-top: 0;
	margin-bottom: auto;
	text-align: left;
}

/* Colored top accents for cards */
.nx-accent-violet {
	border-top: 3px solid #7c3aed;
}

.nx-accent-pink {
	border-top: 3px solid #ec4899;
}

.nx-accent-cyan {
	border-top: 3px solid #06b6d4;
}

/* ---------- Inline SVG icons ---------- */
.nx-svg-icon {
	width: 1.1em;
	height: 1.1em;
	vertical-align: -0.15em;
	margin-right: 0.4rem;
	color: #7c3aed;
}

/* ---------- Tech badges ---------- */
.nx-badges code {
	display: inline-block;
	background: #f5f3ff;
	color: #6d28d9;
	border: 1px solid #ede9fe;
	border-radius: 999px;
	padding: 0.35em 0.9em;
	margin: 0.2em 0.15em;
	font-size: 0.85rem;
	font-family: inherit;
	font-weight: 500;
}

/* ---------- Buttons ---------- */
.wp-block-button__link {
	transition: opacity 0.15s ease, transform 0.15s ease;
}

.wp-block-button__link:hover {
	opacity: 0.9;
	transform: translateY(-1px);
}

/* ---------- Footer ---------- */
.nx-footer {
	border-top: 2px solid #fff;
}

.nx-footer a {
	text-decoration: none;
	color: #a5b1c9;
}

.nx-footer a:hover {
	color: #06b6d4;
	text-decoration: underline;
}

.nx-footer .wp-block-heading {
	color: #ffffff;
}

/* ---------- Forms (Contact Form 7) ---------- */
.wpcf7 label {
	display: block;
	font-weight: 600;
	font-size: 0.92rem;
	margin-bottom: 1rem;
	color: #0f172a;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 textarea {
	width: 100%;
	margin-top: 0.35rem;
	padding: 0.7rem 0.9rem;
	border: 1px solid #cbd5e1;
	border-radius: 8px;
	background: #ffffff;
	font: inherit;
	color: #0f172a;
	box-sizing: border-box;
}

.wpcf7 input:focus,
.wpcf7 textarea:focus {
	outline: 2px solid #7c3aed;
	outline-offset: 1px;
	border-color: #7c3aed;
}

.wpcf7 .wpcf7-acceptance label {
	font-weight: 400;
	font-size: 0.88rem;
	color: #55607a;
}

.wpcf7 .wpcf7-acceptance input {
	margin-right: 0.5em;
}

.wpcf7 .wpcf7-submit {
	background: #7c3aed;
	color: #ffffff;
	border: none;
	border-radius: 8px;
	padding: 0.8rem 2rem;
	font-weight: 600;
	font-size: 1rem;
	cursor: pointer;
	transition: background 0.15s ease;
}

.wpcf7 .wpcf7-submit:hover {
	background: #6d28d9;
}

.wpcf7 form .wpcf7-response-output {
	margin: 1.5em 0 0;
	border-radius: 8px;
	padding: 0.8em 1em;
}

/* ---------- Pricing ---------- */
.nx-price {
	font-size: 1.6rem;
	font-weight: 800;
	color: #0a0f1e;
	margin-top: 0.25rem;
}

.nx-pricing-table table {
	border-collapse: collapse;
	width: 100%;
}

.nx-pricing-table th {
	background: #f4f6fb;
	text-align: left;
}

.nx-pricing-table th,
.nx-pricing-table td {
	border: 1px solid #e2e8f0;
	padding: 0.7rem 0.9rem;
	font-size: 0.95rem;
}

.nx-pricing-table td:nth-child(2) {
	white-space: nowrap;
	font-weight: 600;
}

/* ---------- FAQ ---------- */
.nx-faq .wp-block-details {
	background: #ffffff;
	border: 1px solid #e2e8f0;
	border-radius: 10px;
	padding: 1rem 1.25rem;
	margin-bottom: 0.75rem;
}

.nx-faq .wp-block-details summary {
	font-weight: 600;
	cursor: pointer;
	list-style: none;
	position: relative;
	padding-right: 2rem;
}

.nx-faq .wp-block-details summary::-webkit-details-marker {
	display: none;
}

.nx-faq .wp-block-details summary::after {
	content: "+";
	position: absolute;
	right: 0.25rem;
	top: 50%;
	transform: translateY(-50%);
	font-size: 1.4rem;
	font-weight: 400;
	color: #7c3aed;
	transition: transform 0.15s ease;
}

.nx-faq .wp-block-details[open] summary::after {
	content: "−";
}

.nx-faq .wp-block-details[open] summary {
	margin-bottom: 0.6rem;
}

.nx-faq .wp-block-details p {
	color: #55607a;
	font-size: 0.95rem;
	margin: 0;
}

/* ---------- Misc ---------- */
.nx-legal-meta {
	color: #55607a;
	font-size: 0.9rem;
}

html {
	scroll-behavior: smooth;
}
