/**
 * V10 — Global component styles from Design System tokens.
 */

.nth-btn,
.nth-btn--primary,
.nth-btn--header {
	min-height: var(--nth-btn-height, 48px);
	padding: 0 var(--nth-btn-padding-x, 16px);
	border-radius: var(--nth-btn-radius, 8px);
	font-size: var(--nth-type-button-size, 15px);
	font-weight: var(--nth-type-button-weight, 600);
	line-height: var(--nth-type-button-line-height, 1.2);
	transition: background var(--nth-btn-transition, 0.25s ease), transform var(--nth-btn-transition, 0.25s ease), box-shadow var(--nth-btn-transition, 0.25s ease);
}

.nth-btn--primary,
.nth-btn--header,
.nth-btn--hero-primary {
	background: var(--nth-btn-bg, #0ea5e9);
	box-shadow: var(--nth-btn-shadow, none);
}

.nth-btn--primary:hover,
.nth-btn--header:hover,
.nth-btn--hero-primary:hover {
	background: var(--nth-btn-bg-hover, #0284c7);
}

.nth-pillar-card,
.nth-blog-card,
.nth-service-card {
	border-radius: var(--nth-card-radius, 12px);
	box-shadow: var(--nth-card-shadow, 0 4px 24px rgba(15, 23, 42, 0.06));
	padding: var(--nth-card-padding, 24px);
	border: 1px solid var(--nth-card-border-color, var(--nth-border, #e2e8f0));
	transition: transform var(--nth-btn-transition, 0.25s ease), box-shadow var(--nth-btn-transition, 0.25s ease);
}

.nth-card-hover-lift .nth-pillar-card:hover,
.nth-card-hover-lift .nth-blog-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--nth-shadow-hover, 0 12px 40px rgba(15, 23, 42, 0.12));
}

.nth-card-hover-scale .nth-pillar-card:hover,
.nth-card-hover-scale .nth-blog-card:hover {
	transform: scale(1.02);
}

.nth-home-section:not(.nth-home-section--hero):not(.nth-home-section--cta) {
	padding-top: var(--nth-section-spacing, 96px);
	padding-bottom: var(--nth-section-spacing, 96px);
}

.nth-home-section--anim-fade {
	animation: nthFadeIn 0.6s ease both;
}

.nth-home-section--anim-slide {
	animation: nthSlideUp 0.6s ease both;
}

@keyframes nthFadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}

@keyframes nthSlideUp {
	from { opacity: 0; transform: translateY(24px); }
	to { opacity: 1; transform: translateY(0); }
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
textarea,
select,
.wpcf7-form-control {
	border-radius: var(--nth-form-field-radius, 8px);
}

input::placeholder,
textarea::placeholder {
	color: var(--nth-form-placeholder-color, #94a3b8);
}

input:focus-visible,
textarea:focus-visible,
select:focus-visible,
.wpcf7-form-control:focus-visible {
	outline: 2px solid var(--nth-form-focus-color, #0ea5e9);
	outline-offset: 2px;
}

.nth-menu-icon,
.nth-menu-icon--svg {
	width: var(--nth-icon-default-size, var(--nth-menu-icon-width, 20px));
	height: var(--nth-icon-default-size, var(--nth-menu-icon-height, 20px));
	color: var(--nth-icon-default-color, currentColor);
}

.nth-header__nav-link {
	font-size: var(--nth-type-menu-size, 15px);
	font-weight: var(--nth-type-menu-weight, 500);
}

body {
	font-size: var(--nth-type-body-size, 16px);
	font-weight: var(--nth-type-body-weight, 400);
	line-height: var(--nth-type-body-line-height, 1.6);
}

h1 { font-size: var(--nth-type-h1-size, 48px); font-weight: var(--nth-type-h1-weight, 800); line-height: var(--nth-type-h1-line-height, 1.1); }
h2 { font-size: var(--nth-type-h2-size, 36px); font-weight: var(--nth-type-h2-weight, 700); line-height: var(--nth-type-h2-line-height, 1.15); }
h3 { font-size: var(--nth-type-h3-size, 28px); font-weight: var(--nth-type-h3-weight, 700); line-height: var(--nth-type-h3-line-height, 1.2); }
h4 { font-size: var(--nth-type-h4-size, 22px); font-weight: var(--nth-type-h4-weight, 600); line-height: var(--nth-type-h4-line-height, 1.25); }
h5 { font-size: var(--nth-type-h5-size, 18px); font-weight: var(--nth-type-h5-weight, 600); line-height: var(--nth-type-h5-line-height, 1.3); }
h6 { font-size: var(--nth-type-h6-size, 16px); font-weight: var(--nth-type-h6-weight, 600); line-height: var(--nth-type-h6-line-height, 1.35); }

.nth-footer {
	background: var(--nth-footer-custom-bg, var(--nth-footer-surface, #0f172a));
	font-size: var(--nth-type-footer-size, 14px);
	color: var(--nth-footer-custom-text, rgba(255, 255, 255, 0.85));
}

.nth-notice--success,
.nth-alert--success {
	color: var(--nth-success, #16a34a);
	border-color: var(--nth-success, #16a34a);
}

.nth-notice--warning,
.nth-alert--warning {
	color: var(--nth-warning, #f59e0b);
	border-color: var(--nth-warning, #f59e0b);
}

.nth-notice--error,
.nth-alert--error {
	color: var(--nth-error, #dc2626);
	border-color: var(--nth-error, #dc2626);
}

.nth-single-post .entry-content,
.nth-blog-card__excerpt {
	font-size: var(--nth-type-blog-size, 17px);
	font-weight: var(--nth-type-blog-weight, 400);
	line-height: var(--nth-type-blog-line-height, 1.7);
}

.nth-portfolio-card__excerpt,
.nth-portfolio-single .entry-content {
	font-size: var(--nth-type-portfolio-size, 17px);
	line-height: var(--nth-type-portfolio-line-height, 1.6);
}

.nth-faq__answer,
.nth-faq-item__content {
	font-size: var(--nth-type-faq-size, 16px);
	line-height: var(--nth-type-faq-line-height, 1.6);
}

.nth-icon-color-token {
	color: var(--nth-icon-color, var(--nth-icon-default-color, #64748b));
}

.nth-header.is-solid {
	background: var(--nth-header-surface, #fff);
}

a:not(.nth-btn) {
	color: var(--nth-link-color, var(--nth-secondary, #0369a1));
}

@media (max-width: 1023px) {
	body { font-size: var(--nth-type-body-size-tablet, var(--nth-type-body-size, 16px)); }
	h1 { font-size: var(--nth-type-h1-size-tablet, var(--nth-type-h1-size, 40px)); }
	h2 { font-size: var(--nth-type-h2-size-tablet, var(--nth-type-h2-size, 32px)); }
}

@media (max-width: 767px) {
	body { font-size: var(--nth-type-body-size-mobile, var(--nth-type-body-size-tablet, 15px)); }
	h1 { font-size: var(--nth-type-h1-size-mobile, var(--nth-type-h1-size-tablet, 32px)); }
	h2 { font-size: var(--nth-type-h2-size-mobile, var(--nth-type-h2-size-tablet, 28px)); }
}
