/*
Theme Name: Prxis Theme
Theme URI: https://prxis.eu
Author: PRXIS
Author URI: https://prxis.eu
Description: Block theme for PRXIS, an independent advisory in Brussels. Based on Frost by WP Engine (GPL v3). Civic Monograph design: warm paper, printer-ink type, hairline rules, sharp corners, no shadows. Everything is editable in the Site Editor.
Tags: block-patterns, block-styles, custom-colors, custom-logo, custom-menu, editor-style, full-site-editing, one-column, template-editing, threaded-comments, translation-ready, wide-blocks
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
Version: 1.0.0
License: GNU General Public License v3
License URI: https://www.gnu.org/licenses/gpl-3.0.html
Text Domain: prxis-theme

Prxis Theme is a derivative of Frost 1.0.10 (c) WP Engine, licensed GPL v3.
*/

/* Defaults
---------------------------------------- */

*,
*::before,
*::after {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

/* Anchor targets clear the sticky header. */
[id] {
	scroll-margin-top: 5rem;
}

a,
button,
.wp-element-button,
.is-style-card {
	transition: color 0.15s ease, background-color 0.15s ease, border-color 0.15s ease;
}

a:not(.wp-element-button) {
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

b,
strong,
th {
	font-weight: var(--wp--custom--font-weight--medium);
}

:focus-visible {
	outline: 2px solid var(--wp--preset--color--primary);
	outline-offset: 2px;
}

mark {
	background: var(--wp--preset--color--cream);
	color: inherit;
}

@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	* { transition: none !important; animation: none !important; }
}

/* Forms (core blocks, comments, search, Forminator)
---------------------------------------- */

input,
select,
textarea {
	background-color: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--border);
	border-radius: 0;
	color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--sans);
	font-size: 0.9375rem;
	line-height: 1.5;
	min-height: 44px;
	padding: 0.5rem 0.75rem;
	width: 100%;
}

textarea {
	min-height: 9rem;
}

input:focus,
select:focus,
textarea:focus {
	border-color: var(--wp--preset--color--primary);
	outline: 1px solid var(--wp--preset--color--primary);
	outline-offset: 0;
}

input[type="checkbox"],
input[type="radio"] {
	accent-color: var(--wp--preset--color--primary);
	min-height: 0;
	width: auto;
}

input[type="image"] {
	width: auto;
}

input[type="button"],
input[type="email"],
input[type="search"],
input[type="submit"],
input[type="text"],
textarea {
	-webkit-appearance: none;
	appearance: none;
}

::placeholder {
	color: var(--wp--preset--color--ink-secondary);
	opacity: 0.7;
}

input[type="submit"],
button[type="submit"]:not(.wp-element-button) {
	background: var(--wp--preset--color--primary);
	border: 1px solid var(--wp--preset--color--primary);
	color: var(--wp--preset--color--cream);
	cursor: pointer;
	font-size: var(--wp--preset--font-size--compact);
	font-weight: 500;
	padding: 0.75rem 1.5rem;
	width: auto;
}

input[type="submit"]:hover,
button[type="submit"]:not(.wp-element-button):hover {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
}

label,
.forminator-label {
	color: var(--wp--preset--color--ink-secondary);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* Forminator: bundled design is switched off for this form, so style it here. */
.prxis-contact-form .forminator-ui .forminator-row {
	margin-bottom: 1rem;
}

.prxis-contact-form .forminator-ui .forminator-label {
	display: block;
	margin-bottom: 0.25rem;
}

.prxis-contact-form .forminator-ui .forminator-required {
	color: var(--wp--preset--color--primary);
}

.prxis-contact-form .forminator-ui .forminator-description,
.prxis-contact-form .forminator-ui .forminator-error-message {
	color: var(--wp--preset--color--ink-secondary);
	font-size: var(--wp--preset--font-size--meta);
	margin-top: 0.25rem;
}

.prxis-contact-form .forminator-ui .forminator-error-message {
	color: #ba1a1a;
}

.prxis-contact-form .forminator-ui .forminator-response-message {
	border: 1px solid var(--wp--preset--color--border);
	background: var(--wp--preset--color--muted);
	margin-bottom: 1rem;
	padding: 0.75rem 1rem;
}

.prxis-contact-form .forminator-ui .forminator-response-message[aria-hidden="true"],
.prxis-contact-form .forminator-ui .forminator-response-message:empty {
	display: none;
}

.prxis-contact-form .forminator-ui .forminator-button-submit {
	background: var(--wp--preset--color--primary);
	border: 1px solid var(--wp--preset--color--primary);
	border-radius: 0;
	color: var(--wp--preset--color--cream);
	cursor: pointer;
	font-family: var(--wp--preset--font-family--sans);
	font-size: var(--wp--preset--font-size--compact);
	font-weight: 500;
	padding: 0.75rem 1.5rem;
}

.prxis-contact-form .forminator-ui .forminator-button-submit:hover,
.prxis-contact-form .forminator-ui .forminator-button-submit:focus {
	background: var(--wp--preset--color--contrast);
	border-color: var(--wp--preset--color--contrast);
}

.prxis-contact-form .forminator-ui .forminator-textarea {
	min-height: 9rem;
}

.prxis-contact-form .forminator-ui .forminator-response-message.forminator-success {
	border-color: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--secondary);
}

.prxis-contact-form .forminator-ui .forminator-response-message.forminator-error {
	border-color: #ba1a1a;
}

/* Blocks
---------------------------------------- */

*:not(.wp-block-code) > code {
	background-color: var(--wp--preset--color--muted);
	border: 1px solid var(--wp--preset--color--border);
	font-size: 0.9em;
	padding: 0.1em 0.4em;
}

/* Navigation */

.wp-block-navigation__responsive-container.is-menu-open {
	background-color: var(--wp--preset--color--base);
	color: var(--wp--preset--color--contrast);
	padding: var(--wp--custom--spacing--gap);
}

.wp-block-navigation__responsive-container-close,
.wp-block-navigation__responsive-container-open {
	border: 1px solid var(--wp--preset--color--border);
	padding: 4px;
}

.wp-block-navigation:not(.has-background) .wp-block-navigation__submenu-container {
	background-color: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--contrast);
	padding: 0.5rem;
}

.wp-block-navigation .wp-block-navigation-item.current-menu-item > a {
	color: var(--wp--preset--color--primary);
	font-weight: 600;
}

/* Sticky site header: solid paper, hairline rule, no blur. */

.site-header {
	background: var(--wp--preset--color--base);
	border-bottom: 1px solid var(--wp--preset--color--border);
	position: sticky;
	top: 0;
	z-index: 50;
}

.admin-bar .site-header {
	top: 32px;
}

@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}

/* Block styles (pick them in the editor: Block > Styles)
---------------------------------------- */

/* Group: Card — white, hairline border, darkens on hover. */
.wp-block-group.is-style-card {
	background: var(--wp--preset--color--base);
	border: 1px solid var(--wp--preset--color--border);
	padding: var(--wp--preset--spacing--large);
}

.wp-block-group.is-style-card:hover {
	border-color: var(--wp--preset--color--contrast);
}

/* Group: Callout — muted paper with a hairline border. */
.wp-block-group.is-style-callout {
	background: var(--wp--preset--color--muted);
	border: 1px solid var(--wp--preset--color--border);
	padding: var(--wp--preset--spacing--small);
}

/* Group: Ruled top — a 2px navy rule over a column of text. */
.wp-block-group.is-style-ruled-top {
	border-top: 2px solid var(--wp--preset--color--primary);
	padding-top: var(--wp--preset--spacing--small);
}

/* Paragraph: Label (uppercase archival micro-label). */
.is-style-label {
	color: var(--wp--preset--color--ink-secondary);
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.33;
	text-transform: uppercase;
}

/* Paragraph: Mono meta (13px, medium, slightly tracked). */
.is-style-meta {
	color: var(--wp--preset--color--ink-secondary);
	font-size: var(--wp--preset--font-size--meta);
	font-weight: 500;
	letter-spacing: 0.02em;
	line-height: 1.4;
}

/* Paragraph: Chip / Chip green (tags such as "Self-hosted"). */
.is-style-chip,
.is-style-chip-green {
	background: var(--wp--preset--color--muted);
	border: 1px solid var(--wp--preset--color--border);
	color: var(--wp--preset--color--ink-secondary);
	display: inline-block;
	font-size: 0.6875rem;
	font-weight: 600;
	letter-spacing: 0.08em;
	line-height: 1.4;
	padding: 0.25rem 0.5rem;
	text-transform: uppercase;
}

.is-style-chip-green {
	border-color: var(--wp--preset--color--secondary);
	color: var(--wp--preset--color--secondary);
}

/* Paragraph: Status pill with a dot (e.g. "Working pilot in active testing"). */
.is-style-status {
	align-items: center;
	background: var(--wp--preset--color--mint);
	border: 1px solid #9dd2b5;
	color: #002114;
	display: inline-flex;
	font-size: var(--wp--preset--font-size--label);
	font-weight: 600;
	gap: 0.5rem;
	letter-spacing: 0.08em;
	padding: 0.25rem 0.5rem;
	text-transform: uppercase;
}

.is-style-status::before {
	background: var(--wp--preset--color--secondary);
	border-radius: 50%;
	content: "";
	flex: none;
	height: 0.5rem;
	width: 0.5rem;
}

/* Paragraph: Lead (serif, 20px). */
.is-style-lead {
	font-family: var(--wp--preset--font-family--serif);
	font-size: var(--wp--preset--font-size--lead);
	line-height: var(--wp--custom--line-height--lead);
}

/* Paragraph: Placeholder note — dashed box for content still to come. */
.is-style-placeholder {
	background: var(--wp--preset--color--muted);
	border: 2px dashed var(--wp--preset--color--border-strong);
	color: var(--wp--preset--color--ink-secondary);
	font-size: var(--wp--preset--font-size--meta);
	font-weight: 500;
	padding: var(--wp--preset--spacing--medium);
	text-align: center;
}

.wp-block-list.is-style-no-disc {
	list-style: none;
	padding-left: 0;
}

/* Page sections (see patterns/section-*.php)
---------------------------------------- */

.prxis-section {
	border-bottom: 1px solid var(--wp--preset--color--border);
}

.wp-block-post-content > .prxis-section,
.prxis-section {
	margin-block-start: 0;
	margin-block-end: 0;
}

.prxis-section:last-of-type {
	border-bottom: 0;
}

.prxis-spec-row {
	border-top: 1px solid var(--wp--preset--color--border);
}

/* Footer: logo navy with cream type. */
.site-footer,
.site-footer a,
.site-footer p {
	color: var(--wp--preset--color--cream);
}

.site-footer .is-style-label,
.site-footer .is-style-meta {
	color: var(--wp--preset--color--cream);
	opacity: 0.8;
}

.site-footer .is-style-chip {
	background: transparent;
	border-color: rgba(251, 248, 190, 0.4);
	color: var(--wp--preset--color--cream);
}

.site-footer a {
	text-decoration: none;
}

.site-footer a:hover {
	text-decoration: underline;
}

/* Media queries
---------------------------------------- */

@media (max-width: 600px) {
	.is-style-hidden-mobile {
		display: none !important;
	}
}

@media (max-width: 782px) {
	.is-style-columns-reverse {
		flex-direction: column-reverse;
	}
}
