/**
 * New Wave — global UI components (forms, pagination, system pages, buttons).
 */

/* ── Shared field tokens ── */
:root {
	--newave-field-bg: #fff;
	--newave-field-border: var(--newave-border, #e2e8f0);
	--newave-field-focus: var(--newave-brand, #2256bc);
	--newave-field-shadow: 0 1px 2px rgba(7, 16, 63, 0.05);
	--newave-field-radius: var(--newave-radius, 2px);
	--newave-field-height: 2.75rem;
	--newave-btn-height: 3rem;
}

/* ── Global form controls (scoped) ── */
:is(
	.newave-section,
	.newave-page,
	.newave-system-page,
	.newave-contact-form,
	.newave-newsletter__form-inner,
	.woocommerce-account,
	.woocommerce-cart,
	.woocommerce-checkout,
	.woocommerce-order-received
) :is(
	input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not([type="button"]):not([type="image"]):not([type="file"]),
	select,
	textarea
) {
	width: 100%;
	max-width: 100%;
	border: 1px solid var(--newave-field-border);
	border-radius: var(--newave-field-radius);
	padding: 0.625rem 0.875rem;
	font: inherit;
	font-size: 0.875rem;
	line-height: 1.4;
	color: var(--newave-brand-dark, #08103f);
	background: var(--newave-field-bg);
	box-shadow: var(--newave-field-shadow);
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
}

:is(
	.newave-section,
	.newave-page,
	.newave-system-page,
	.newave-contact-form,
	.newave-newsletter__form-inner,
	.woocommerce-account,
	.woocommerce-cart,
	.woocommerce-checkout
) select {
	min-height: var(--newave-field-height);
	appearance: none;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%2307103f' stroke-width='2'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 0.75rem center;
	padding-right: 2.25rem;
}

:is(
	.newave-section,
	.newave-page,
	.newave-system-page,
	.newave-contact-form,
	.newave-newsletter__form-inner,
	.woocommerce-account,
	.woocommerce-cart,
	.woocommerce-checkout
) textarea {
	min-height: 9rem;
	resize: vertical;
}

:is(
	.newave-section,
	.newave-page,
	.newave-system-page,
	.newave-contact-form,
	.newave-newsletter__form-inner,
	.woocommerce-account,
	.woocommerce-cart,
	.woocommerce-checkout
) :is(input, select, textarea):focus {
	outline: none;
	border-color: var(--newave-field-focus);
	box-shadow: 0 0 0 1px var(--newave-field-focus);
}

:is(
	.newave-section,
	.newave-page,
	.newave-system-page,
	.newave-contact-form,
	.woocommerce-account
) label {
	display: block;
	font-size: 0.875rem;
	font-weight: 500;
	color: var(--newave-brand-dark, #08103f);
	margin-bottom: 0.375rem;
}

/* ── Primary / secondary buttons (native + block) ── */
.newave-btn,
.newave-newsletter__form-inner button,
.newave-system-page__btn,
.woocommerce-account .button,
.woocommerce-account button.button:not(.show-password-input),
.woocommerce-form-login button:not(.show-password-input),
.woocommerce-form-register button:not(.show-password-input) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: var(--newave-btn-height);
	padding: 0 1.5rem;
	font: inherit;
	font-size: 0.9375rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	border-radius: var(--newave-field-radius);
	border: 1px solid transparent;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.newave-contact-form__submit {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 100%;
	max-width: 100%;
	min-height: 3.5rem;
	padding: 0 2rem;
	font-size: 1rem;
	font-weight: 500;
	border-radius: var(--newave-field-radius);
}

.newave-btn--primary,
.newave-contact-form__submit,
.newave-newsletter__form-inner button,
.newave-system-page__btn,
.woocommerce-account .button.alt,
.woocommerce-account .woocommerce-Button,
.woocommerce-form-login button:not(.show-password-input),
.woocommerce-form-register button:not(.show-password-input) {
	background: var(--newave-brand-dark, #08103f);
	color: #fff;
}

.newave-btn--primary:hover,
.newave-contact-form__submit:hover,
.newave-newsletter__form-inner button:hover,
.newave-system-page__btn:hover,
.woocommerce-account .button.alt:hover,
.woocommerce-account .woocommerce-Button:hover,
.woocommerce-form-login button:not(.show-password-input):hover,
.woocommerce-form-register button:not(.show-password-input):hover {
	background: hsla(231, 78%, 14%, 0.88);
	color: #fff;
}

.newave-btn--outline,
.woocommerce-account .button:not(.alt):not(.woocommerce-Button) {
	background: #fff;
	color: var(--newave-brand-dark, #08103f);
	border-color: var(--newave-field-border);
}

.newave-btn--outline:hover,
.woocommerce-account .button:not(.alt):not(.woocommerce-Button):hover {
	border-color: var(--newave-brand-dark, #08103f);
	color: var(--newave-brand-dark, #08103f);
}

/* Block buttons — default pages */
.newave-page .wp-block-button__link,
.newave-system-page .wp-block-button__link {
	min-height: var(--newave-btn-height);
	padding: 0.75rem 1.5rem;
	font-weight: 600;
	border-radius: var(--newave-field-radius);
}

.newave-page .wp-block-button:not(.is-style-outline) .wp-block-button__link,
.newave-system-page .wp-block-button:not(.is-style-outline) .wp-block-button__link {
	background: var(--newave-brand-dark, #08103f);
	color: #fff;
}

.newave-page .wp-block-button.is-style-outline .wp-block-button__link,
.newave-system-page .wp-block-button.is-style-outline .wp-block-button__link {
	border: 1px solid var(--newave-field-border);
	color: var(--newave-brand-dark, #08103f);
}

/* ── Newsletter section (match footer) ── */
.newave-newsletter__form-inner {
	display: flex;
	width: 100%;
	max-width: 28rem;
	margin: 0 auto;
	border: 1px solid var(--newave-field-border);
	border-radius: var(--newave-field-radius);
	overflow: hidden;
	background: #fff;
	box-shadow: var(--newave-field-shadow);
}

.newave-newsletter__form-inner input[type="email"] {
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	min-height: var(--newave-btn-height);
}

.newave-newsletter__form-inner button {
	min-height: var(--newave-btn-height);
	border-radius: 0;
	padding: 0 1.25rem;
	flex-shrink: 0;
}

/* ── Pagination ── */
.newave-pagination,
.wp-block-query-pagination.newave-pagination,
.newave-shop-layout .wp-block-query-pagination {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	margin-top: 2.5rem;
	padding-top: 0.5rem;
}

.newave-pagination .wp-block-query-pagination-previous,
.newave-pagination .wp-block-query-pagination-next,
.newave-pagination .page-numbers,
.newave-pagination a.page-numbers,
.wp-block-query-pagination .wp-block-query-pagination-previous,
.wp-block-query-pagination .wp-block-query-pagination-next,
.wp-block-query-pagination .page-numbers,
.wp-block-query-pagination a.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2.5rem;
	min-height: 2.5rem;
	padding: 0 0.75rem;
	font-size: 0.875rem;
	font-weight: 600;
	line-height: 1;
	text-decoration: none;
	color: var(--newave-brand-dark, #08103f);
	background: #fff;
	border: 1px solid var(--newave-field-border);
	border-radius: var(--newave-field-radius);
	transition: background 0.15s ease, border-color 0.15s ease, color 0.15s ease;
}

.newave-pagination .page-numbers.current,
.newave-pagination span.page-numbers.current,
.wp-block-query-pagination .page-numbers.current,
.wp-block-query-pagination span.page-numbers.current {
	background: var(--newave-brand-dark, #08103f);
	border-color: var(--newave-brand-dark, #08103f);
	color: #fff;
}

.newave-pagination a.page-numbers:hover,
.newave-pagination .wp-block-query-pagination-previous:hover,
.newave-pagination .wp-block-query-pagination-next:hover,
.wp-block-query-pagination a.page-numbers:hover,
.wp-block-query-pagination .wp-block-query-pagination-previous:hover,
.wp-block-query-pagination .wp-block-query-pagination-next:hover {
	border-color: var(--newave-brand, #2256bc);
	color: var(--newave-brand, #2256bc);
}

.newave-pagination .page-numbers.dots,
.wp-block-query-pagination .page-numbers.dots {
	border-color: transparent;
	background: transparent;
	min-width: auto;
	padding: 0 0.25rem;
}

.newave-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 0.375rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

.newave-pagination ul.page-numbers li {
	margin: 0;
	padding: 0;
}

/* ── Generic page shell ── */
.newave-page {
	padding-bottom: 4rem;
}

.newave-page .wp-block-post-title {
	font-family: Barlow, sans-serif;
	font-weight: 900;
	font-size: clamp(2rem, 4vw, 2.75rem);
	line-height: 1.1;
	color: var(--newave-brand-dark, #08103f);
	margin: 0 0 1.5rem;
}

.newave-page .wp-block-post-content > :where(h2, h3, h4) {
	font-family: Barlow, sans-serif;
	font-weight: 800;
	color: var(--newave-brand-dark, #08103f);
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

.newave-page .wp-block-post-content > :where(p, ul, ol) {
	color: rgba(8, 16, 63, 0.72);
	line-height: 1.65;
}

.newave-page .wp-block-post-content > ul,
.newave-page .wp-block-post-content > ol {
	padding-left: 1.25rem;
}

/* ── System pages (404, search empty) ── */
.newave-system-page {
	text-align: center;
	padding: clamp(3rem, 8vw, 5rem) 1rem 4rem;
}

.newave-system-page__code {
	display: inline-block;
	margin: 0 0 0.75rem;
	font-family: Barlow, sans-serif;
	font-size: clamp(4rem, 12vw, 6rem);
	font-weight: 900;
	line-height: 1;
	color: var(--newave-brand, #2256bc);
	opacity: 0.35;
}

.newave-system-page__title {
	margin: 0 0 0.75rem;
	font-family: Barlow, sans-serif;
	font-weight: 900;
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	color: var(--newave-brand-dark, #08103f);
}

.newave-system-page__intro {
	max-width: 36rem;
	margin: 0 auto 1.5rem;
	font-size: 1.0625rem;
	line-height: 1.6;
	color: rgba(8, 16, 63, 0.68);
}

.newave-system-page__actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.75rem;
	margin: 1.5rem 0 2rem;
}

.newave-system-page__search {
	max-width: 28rem;
	margin: 0 auto;
}

.newave-system-page__search .wp-block-search__inside-wrapper,
.newave-product-search-form {
	display: flex;
	border: 1px solid var(--newave-field-border);
	border-radius: var(--newave-field-radius);
	overflow: hidden;
	background: #fff;
	box-shadow: var(--newave-field-shadow);
}

.newave-system-page__search .wp-block-search__input,
.newave-product-search-form input[type="search"] {
	flex: 1;
	min-width: 0;
	border: 0 !important;
	box-shadow: none !important;
	border-radius: 0 !important;
	min-height: var(--newave-btn-height);
}

.newave-system-page__search .wp-block-search__button,
.newave-product-search-form button {
	min-height: var(--newave-btn-height);
	border: 0;
	border-radius: 0;
	background: var(--newave-brand-dark, #08103f);
	color: #fff;
	padding: 0 1.25rem;
	font-weight: 600;
	cursor: pointer;
}

.newave-system-page__search .wp-block-search__button:hover,
.newave-product-search-form button:hover {
	background: hsla(231, 78%, 14%, 0.88);
}

/* Search results header */
.newave-search-header .newave-page-header__title,
.newave-search-header .wp-block-query-title {
	margin: 0;
	font-family: var(--wp--preset--font-family--barlow), Barlow, sans-serif;
	font-weight: 900;
	font-size: clamp(2rem, 4vw, 2.75rem);
	line-height: 1.1;
	color: var(--newave-brand-dark, #07103f);
}

.newave-search-header .newave-page-header__query {
	margin: 0.5rem 0 0;
	font-size: 1rem;
	color: rgba(8, 16, 63, 0.65);
}

.newave-search-header .newave-page-header__query strong {
	color: var(--newave-brand-dark, #08103f);
}

.newave-search-results__toolbar {
	margin-bottom: 2rem;
}

.newave-search-results__toolbar.newave-shop-toolbar {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

.newave-search-results__form-wrap {
	margin-top: 1.25rem;
	max-width: 480px;
	margin-left: auto;
	margin-right: auto;
}

.newave-search-results__form-wrap--inline {
	margin: 0;
	max-width: 320px;
	flex: 1 1 260px;
}

/* Archive / blog listing */
.newave-archive-header .wp-block-query-title,
.newave-archive-header .wp-block-term-description,
.newave-shop-header .wp-block-query-title,
.newave-shop-header .wp-block-term-description {
	margin: 0;
}

.newave-archive-header .wp-block-term-description,
.newave-shop-header .wp-block-term-description {
	margin-top: 0.75rem;
	font-size: 1rem;
	line-height: 1.5;
	color: rgba(8, 16, 63, 0.65);
}

.newave-post-grid {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	list-style: none;
	margin: 0;
	padding: 0;
}

@media (min-width: 640px) {
	.newave-post-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 992px) {
	.newave-post-grid {
		grid-template-columns: repeat(3, 1fr);
	}
}

.newave-post-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	background: #fff;
	border: 1px solid var(--newave-field-border);
	border-radius: var(--newave-field-radius);
	overflow: hidden;
	box-shadow: 0 1px 3px rgba(8, 16, 63, 0.04);
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}

.newave-post-card:hover {
	box-shadow: 0 8px 24px rgba(8, 16, 63, 0.08);
	transform: translateY(-2px);
}

.newave-post-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.newave-post-card__body {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 0.5rem;
	padding: 1.25rem;
}

.newave-post-card__date {
	margin: 0 !important;
	font-size: 0.75rem !important;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: rgba(8, 16, 63, 0.55) !important;
}

.newave-post-card__title {
	margin: 0 !important;
	font-family: Barlow, sans-serif;
	font-weight: 800;
	font-size: 1.125rem !important;
	line-height: 1.25;
}

.newave-post-card__title a {
	color: var(--newave-brand-dark, #08103f);
	text-decoration: none;
}

.newave-post-card__title a:hover {
	color: var(--newave-brand, #2256bc);
}

.newave-post-card__excerpt {
	margin: 0 !important;
	color: rgba(8, 16, 63, 0.65);
	font-size: 0.875rem;
	line-height: 1.55;
	flex: 1;
}

.newave-post-card__excerpt a {
	color: var(--newave-brand, #2256bc);
	font-weight: 600;
	text-decoration: none;
}

/* Single blog post */
.newave-single-post__image {
	margin-bottom: 1.5rem;
	border-radius: var(--newave-field-radius);
	overflow: hidden;
}

.newave-single-post__image img {
	width: 100%;
	height: auto;
	display: block;
}

.newave-single-post__header {
	margin-bottom: 1.5rem;
}

.newave-single-post__date {
	margin: 0 0 0.5rem !important;
	font-size: 0.8125rem !important;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: rgba(8, 16, 63, 0.55) !important;
}

.newave-single-post__title {
	margin: 0 !important;
	font-family: Barlow, sans-serif;
	font-weight: 900;
	font-size: clamp(2rem, 4vw, 2.75rem) !important;
	line-height: 1.1;
	color: var(--newave-brand-dark, #08103f);
}

.newave-single-post .wp-block-post-content {
	color: rgba(8, 16, 63, 0.78);
	line-height: 1.7;
}

.newave-single-post .wp-block-post-content > :where(h2, h3, h4) {
	font-family: Barlow, sans-serif;
	font-weight: 800;
	color: var(--newave-brand-dark, #08103f);
	margin-top: 2rem;
	margin-bottom: 0.75rem;
}

.newave-single-post__footer {
	display: flex;
	flex-wrap: wrap;
	gap: 0.75rem 1.5rem;
	margin-top: 2rem;
	font-size: 0.875rem;
	color: rgba(8, 16, 63, 0.65);
}

.newave-single-post__terms a {
	color: var(--newave-brand, #2256bc);
	text-decoration: none;
	font-weight: 600;
}

.newave-single-post__divider {
	margin: 2rem 0 !important;
	border-color: var(--newave-field-border) !important;
}

.newave-single-post__nav {
	gap: 1rem;
	font-size: 0.875rem;
}

.newave-single-post__nav a {
	color: var(--newave-brand-dark, #08103f);
	font-weight: 600;
	text-decoration: none;
}

.newave-single-post__nav a:hover {
	color: var(--newave-brand, #2256bc);
}

/* Empty / no results states */
.newave-empty-state {
	text-align: center;
	padding: 3rem 1.5rem;
	border: 1px dashed var(--newave-field-border);
	border-radius: var(--newave-field-radius);
	background: var(--newave-muted, #f4f6fb);
}

.newave-empty-state__title {
	margin: 0 0 0.5rem;
	font-family: Barlow, sans-serif;
	font-weight: 800;
	font-size: 1.25rem;
	color: var(--newave-brand-dark, #08103f);
}

.newave-empty-state__text {
	margin: 0;
	color: rgba(8, 16, 63, 0.65);
	font-size: 0.9375rem;
	line-height: 1.5;
}

.newave-shop-layout .newave-empty-state,
.newave-search-results .newave-empty-state {
	margin-top: 1rem;
}

/* ── WooCommerce store notices (cart/checkout blocks) ── */
.wc-block-store-notice,
.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	border-radius: var(--newave-field-radius) !important;
	border-width: 1px !important;
	font-size: 0.9375rem;
	line-height: 1.5;
}

.woocommerce-message,
.wc-block-components-notice-banner.is-success {
	background: #ecfdf5 !important;
	border-color: #86efac !important;
	color: #065f46 !important;
}

.woocommerce-info,
.wc-block-components-notice-banner.is-info {
	background: #eff6ff !important;
	border-color: #93c5fd !important;
	color: #1e3a8a !important;
}

.woocommerce-error,
.wc-block-components-notice-banner.is-error {
	background: #fef2f2 !important;
	border-color: #fca5a5 !important;
	color: #991b1b !important;
}

.woocommerce-message a,
.woocommerce-info a,
.woocommerce-error a {
	color: inherit;
	font-weight: 600;
}

/* ── Tables (orders, etc.) ── */
.newave-page table,
.woocommerce-account table.shop_table {
	width: 100%;
	border-collapse: collapse;
	font-size: 0.875rem;
}

.newave-page table th,
.newave-page table td,
.woocommerce-account table.shop_table th,
.woocommerce-account table.shop_table td {
	padding: 0.875rem 1rem;
	border-bottom: 1px solid var(--newave-field-border);
	text-align: left;
	vertical-align: middle;
}

.newave-page table th,
.woocommerce-account table.shop_table th {
	font-weight: 600;
	color: var(--newave-brand-dark, #08103f);
	background: var(--newave-muted, #f4f6fb);
}

.woocommerce-account table.shop_table .button {
	min-height: 2.25rem;
	padding: 0 0.875rem;
	font-size: 0.8125rem;
}

/* ── Checkbox / radio ── */
:is(.newave-section, .woocommerce-account, .woocommerce-checkout) input[type="checkbox"],
:is(.newave-section, .woocommerce-account, .woocommerce-checkout) input[type="radio"] {
	accent-color: var(--newave-brand, #2256bc);
	width: 1rem;
	height: 1rem;
}
