/*
 * Contacts page. Scoped to the editor-managed content root so the shared
 * storefront chrome (header, footer, container) stays untouched. Colours,
 * radii, shadows and motion come from the theme tokens in base.css.
 */
.psmix-contacts-main .wp-block-post-content > .psmix-contacts-page {
	width: 100%;
	max-width: 100%;
	margin-inline: 0;
}

/* One warm surface for the whole page, like the rest of the storefront. */
.psmix-contacts-page,
.psmix-contacts-page > * {
	background: var(--ps-warm);
}

.psmix-contacts-page > * + * {
	margin-block-start: 0;
}

/* Every inner group controls its own spacing instead of the theme block gap. */
.psmix-contacts-page .is-layout-flow > * + * {
	margin-block-start: 0;
}

.psmix-contacts-page .ct-container {
	width: min(100% - 40px, var(--container));
	margin-inline: auto;
}

.psmix-contacts-page .ct-wrap {
	padding: 1.25rem 0 4rem;
}

/* Breadcrumbs */
.psmix-contacts-page .ct-breadcrumbs {
	margin: 0;
	padding: 0.125rem 0 1.75rem;
	color: #8a8d92;
	font-size: 0.71875rem;
	font-weight: 700;
}

.psmix-contacts-page .ct-breadcrumbs a {
	color: inherit;
}

.psmix-contacts-page .ct-breadcrumbs a:hover {
	color: var(--ps-red-dark);
}

.psmix-contacts-page .ct-breadcrumbs span {
	margin: 0 0.4375rem;
	color: #b7b9bc;
}

/* Heading */
.psmix-contacts-page .ct-heading {
	max-width: 47.5rem;
	margin: 0 0 2rem;
}

.psmix-contacts-page .ct-kicker {
	margin: 0 0 0.8125rem;
	color: #313338;
	font-size: 0.75rem;
	font-weight: 900;
	letter-spacing: 0.1em;
	text-transform: uppercase;
}

.psmix-contacts-page .ct-heading h1 {
	margin: 0;
	color: var(--ps-black);
	font-size: var(--psmix-page-title-size);
	font-weight: 950;
	letter-spacing: -0.055em;
	line-height: 1.15;
}

.psmix-contacts-page .ct-heading > p:last-child {
	max-width: 43.125rem;
	margin: 1.125rem 0 0;
	color: #686c72;
	font-size: var(--psmix-body-size);
	line-height: 1.65;
}

/* Two-column body: details and the feedback form */
.psmix-contacts-page .ct-main-grid {
	display: grid;
	grid-template-columns: minmax(0, 0.86fr) minmax(28.75rem, 1.14fr);
	gap: 2.5rem;
	align-items: start;
}

.psmix-contacts-page .ct-main-grid > * {
	margin: 0;
}

.psmix-contacts-page .ct-details {
	padding-top: 0.125rem;
}

.psmix-contacts-page :is(.ct-details h2, .ct-form-head h2, .ct-requisites-head h2) {
	margin: 0;
	color: var(--ps-black);
	font-size: 1.5rem;
	font-weight: 900;
	letter-spacing: -0.035em;
	line-height: 1.1;
}

.psmix-contacts-page .ct-details-intro {
	margin: 0.5625rem 0 1.375rem;
	color: var(--ps-gray);
	font-size: 0.78125rem;
	line-height: 1.55;
}

.psmix-contacts-page .ct-contact-list {
	display: grid;
	gap: 0.5625rem;
}

.psmix-contacts-page .ct-contact-row {
	display: grid;
	grid-template-columns: 2rem minmax(0, 1fr);
	gap: 0.6875rem;
	align-items: start;
	padding: 0.8125rem 0.875rem;
	border: 1px solid var(--ps-line);
	border-radius: calc(var(--radius-card) * 1.1);
	background: var(--ps-white);
}

.psmix-contacts-page .ct-contact-icon {
	display: grid;
	width: 2rem;
	height: 2rem;
	place-items: center;
	border-radius: 0.5rem;
	color: var(--ps-white);
	background: var(--ps-black);
}

.psmix-contacts-page .ct-contact-icon svg {
	width: 1.125rem;
	height: 1.125rem;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.8;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.psmix-contacts-page .ct-contact-label {
	color: #777a80;
	font-size: 0.625rem;
	font-weight: 900;
	letter-spacing: 0.065em;
	text-transform: uppercase;
}

.psmix-contacts-page .ct-contact-value {
	display: grid;
	min-width: 0;
	gap: 0.25rem;
	overflow-wrap: anywhere;
}

.psmix-contacts-page .ct-contact-value :is(a, strong) {
	justify-self: start;
	max-width: 100%;
	color: #1d1e20;
	font-size: 1.0625rem;
	font-weight: 850;
	letter-spacing: -0.02em;
	line-height: 1.35;
}

.psmix-contacts-page .ct-contact-value a:hover {
	color: var(--ps-red);
}

.psmix-contacts-page .ct-contact-value small {
	color: #7c7f84;
	font-size: 0.6875rem;
	line-height: 1.45;
}

.psmix-contacts-page .ct-business-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-top: 1.5rem;
	color: #303236;
	font-size: 0.75rem;
	font-weight: 850;
}

.psmix-contacts-page .ct-business-link span {
	color: var(--ps-red);
	font-size: 1rem;
	transition: transform var(--motion-fast) var(--ease-standard);
}

.psmix-contacts-page .ct-business-link:hover span {
	transform: translateX(0.1875rem);
}

/* Feedback form card */
.psmix-contacts-page .ct-form-card {
	margin: 0;
	padding: 1.875rem;
	border: 1px solid var(--ps-line);
	border-radius: calc(var(--radius-card) * 1.55);
	background: var(--ps-white);
	box-shadow: var(--shadow-card);
}

.psmix-contacts-page .ct-form-head {
	padding-bottom: 1.25rem;
	margin-bottom: 1.3125rem;
	border-bottom: 1px solid #eceae5;
}

.psmix-contacts-page .ct-form-head p {
	max-width: 38.75rem;
	margin: 0.5rem 0 0;
	color: #73767b;
	font-size: 0.78125rem;
	line-height: 1.55;
}

/*
 * Light restyle of the shared page form for the contacts card: tighter field
 * gap, upper-case micro labels and reference radii, while the plugin keeps
 * owning submission handling through .psmix-contact-form--page.
 */
.psmix-contacts-page .psmix-contact-form {
	grid-template-columns: 1fr 1fr;
	gap: 0.875rem 1rem;
	margin-top: 0;
}

.psmix-contacts-page .psmix-contact-label {
	margin-bottom: 0.375rem;
	color: #555960;
	font-size: 0.8125rem;
	font-weight: 900;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.psmix-contacts-page .psmix-contact-form input:where(:not([type="checkbox"])),
.psmix-contacts-page .psmix-contact-form textarea {
	border: 1px solid #d9dad7;
	border-radius: calc(var(--radius-input) * 0.72);
	background: var(--ps-white);
	color: #171717;
	font-size: var(--psmix-body-size);
}

.psmix-contacts-page .psmix-contact-form input:where(:not([type="checkbox"])):focus,
.psmix-contacts-page .psmix-contact-form textarea:focus {
	border-color: #85888d;
	background: var(--ps-white);
	box-shadow: 0 0 0 3px rgb(21 21 21 / 0.045);
}

.psmix-contacts-page .psmix-contact-form--page .psmix-contact-consent {
	max-width: 34rem;
	color: #75787d;
	font-size: 0.8125rem;
	line-height: 1.45;
}

.psmix-contacts-page .psmix-contact-form--page .psmix-contact-submit {
	min-width: 10.875rem;
	min-height: 2.875rem;
	border-radius: calc(var(--radius-input) * 0.72);
}

/* Requisites */
.psmix-contacts-page .ct-requisites {
	margin-top: 2rem;
	padding-top: 2rem;
	border-top: 1px solid #d8d6d0;
}

.psmix-contacts-page .ct-requisites-head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.5rem;
	margin-bottom: 1.25rem;
}

.psmix-contacts-page .ct-requisites-head > .wp-block-group {
	min-width: 0;
}

.psmix-contacts-page .ct-requisites-head p {
	max-width: 38.125rem;
	margin: 0.5rem 0 0;
	color: var(--ps-gray);
	font-size: 0.75rem;
	line-height: 1.55;
}

.psmix-contacts-page .ct-copy {
	min-height: 2.375rem;
	padding: 0 0.8125rem;
	border: 1px solid #d6d5d1;
	border-radius: calc(var(--radius-input) * 0.72);
	background: var(--ps-white);
	color: #33363b;
	font: inherit;
	font-size: 0.6875rem;
	font-weight: 850;
	cursor: pointer;
	transition: border-color var(--motion-fast) var(--ease-standard);
}

.psmix-contacts-page .ct-copy:hover {
	border-color: #aaa;
}

.psmix-contacts-page .ct-req-table {
	overflow: hidden;
	border: 1px solid var(--ps-line);
	border-radius: calc(var(--radius-card) * 1.3);
	background: var(--ps-white);
}

.psmix-contacts-page .ct-req-row {
	display: grid;
	grid-template-columns: 15rem 1fr;
	gap: 1.375rem;
	padding: 1rem 1.25rem;
	border-bottom: 1px solid #ebeae6;
	font-size: 0.78125rem;
	line-height: 1.5;
}

.psmix-contacts-page .ct-req-row:last-child {
	border-bottom: 0;
}

.psmix-contacts-page .ct-req-row span {
	color: #777a80;
	font-size: 0.625rem;
	font-weight: 900;
	letter-spacing: 0.055em;
	text-transform: uppercase;
}

.psmix-contacts-page .ct-req-row strong {
	color: #26282b;
	font-weight: 750;
}

@media (max-width: 980px) {
	.psmix-contacts-page .ct-main-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

	.psmix-contacts-page .ct-details {
		max-width: 45rem;
	}

	.psmix-contacts-page .ct-form-card {
		max-width: 48.75rem;
	}
}

@media (max-width: 700px) {
	.psmix-contacts-page .ct-container {
		width: min(100% - 24px, var(--container));
	}

	.psmix-contacts-page .ct-wrap {
		padding: 0.875rem 0 3rem;
	}

	.psmix-contacts-page .ct-breadcrumbs {
		padding-bottom: 1.125rem;
	}

	.psmix-contacts-page .ct-heading {
		margin-bottom: 1.5rem;
	}

	.psmix-contacts-page .ct-heading h1 {
		font-size: var(--psmix-page-title-size);
	}

	.psmix-contacts-page .ct-heading > p:last-child {
		font-size: var(--psmix-body-size);
	}

	.psmix-contacts-page .ct-form-card {
		padding: 1.25rem 1rem;
		border-radius: calc(var(--radius-card) * 1.15);
	}

	.psmix-contacts-page .psmix-contact-form {
		grid-template-columns: 1fr;
	}

	.psmix-contacts-page .psmix-contact-form--page .psmix-contact-submit {
		width: 100%;
	}

	.psmix-contacts-page .ct-requisites {
		margin-top: 1.5rem;
		padding-top: 1.5rem;
	}

	.psmix-contacts-page .ct-requisites-head {
		align-items: flex-start;
		flex-direction: column;
	}

	.psmix-contacts-page .ct-req-row {
		grid-template-columns: 1fr;
		gap: 0.25rem;
		padding: 0.875rem 1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.psmix-contacts-page * {
		transition-duration: 0.01ms !important;
	}
}
