/* Point Consulting Contacts page: dark navy backdrop with a cream request form card. Sections are marked with pcc-* classes in Elementor. */

body.pc-contacts {
	--pcc-bg: #1D2140;
	--pcc-bg-light: #2B3052;
	--pcc-navy: #16224F;
	--pcc-gold: #2563C9;
	--pcc-gold-bright: #8DB4F7;
	--pcc-gold-deep: #1E56B8;
	--pcc-card: #EEF2F8;
	--pcc-field-line: #CED6E3;
	--pcc-placeholder: #9A9488;
	--pcc-font: "Manrope", "Heebo", sans-serif;
	background:
		radial-gradient(rgba(255, 255, 255, 0.035) 1px, transparent 1.4px) 0 0 / 22px 22px,
		radial-gradient(120% 60% at 50% 55%, var(--pcc-bg-light), transparent 70%),
		var(--pcc-bg);
	background-attachment: fixed;
}

body.pc-contacts [data-elementor-type="wp-page"] :is(h1, h3, p, label, input, textarea, .elementor-heading-title, .elementor-icon-box-title, .elementor-icon-box-description) {
	font-family: var(--pcc-font) !important;
}

body.pc-contacts [data-elementor-type="wp-page"] .elementor-widget:not(:last-child) {
	margin-bottom: 0;
}

body.pc-contacts [data-elementor-type="wp-page"] .elementor-section > .elementor-container {
	max-width: 880px;
	padding: 0 24px;
}

/* ---------- Intro ---------- */

body.pc-contacts .pcc-intro {
	padding: 80px 0 48px;
	text-align: center;
}

body.pc-contacts .pcc-title .elementor-heading-title {
	margin: 0;
	font-size: clamp(36px, 4.4vw, 52px);
	font-weight: 800;
	line-height: 1.1;
	letter-spacing: -0.03em;
	text-align: center;
	color: #FFFFFF !important;
}

body.pc-contacts .pcc-subtitle p {
	margin: 20px 0 0;
	font-size: 20px;
	line-height: 1.5;
	text-align: center;
	color: var(--pcc-gold-bright) !important;
}

body.pc-contacts .pcc-subtitle p::after {
	content: "";
	display: block;
	width: 92px;
	height: 3px;
	margin: 26px auto 0;
	border-radius: 2px;
	background: linear-gradient(90deg, transparent, var(--pcc-gold-bright), transparent);
}

/* ---------- Form card ---------- */

body.pc-contacts .pcc-form-section {
	padding-bottom: 64px;
}

body.pc-contacts .pcc-form .wpcf7 {
	padding: 48px;
	background: var(--pcc-card);
	box-shadow: 0 30px 60px rgba(0, 0, 0, 0.3);
}

body.pc-contacts .pcc-form .wpcf7-form {
	display: flex;
	flex-direction: column;
	gap: 28px;
}

body.pc-contacts .pcc-row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 20px;
}

body.pc-contacts .pcc-field {
	display: flex;
	flex-direction: column;
	min-width: 0;
}

body.pc-contacts .pcc-field > :is(label, .pcc-label) {
	margin-bottom: 10px;
	font-family: var(--pcc-font);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: 0.01em;
	color: var(--pcc-navy);
}

body.pc-contacts .pcc-form .wpcf7-form-control-wrap {
	display: block;
}

body.pc-contacts .pcc-form :is(input[type="text"], input[type="email"], textarea) {
	width: 100%;
	box-sizing: border-box;
	padding: 15px 17px;
	border: 2px solid var(--pcc-field-line);
	border-radius: 6px;
	background: #FFFFFF;
	font-size: 16px;
	line-height: 1.4;
	color: var(--pcc-navy);
	transition: border-color 0.2s ease, box-shadow 0.2s ease;
}

body.pc-contacts .pcc-form :is(input, textarea)::placeholder {
	color: var(--pcc-placeholder);
	opacity: 1;
}

body.pc-contacts .pcc-form :is(input[type="text"], input[type="email"], textarea):focus {
	outline: none;
	border-color: var(--pcc-gold);
	box-shadow: 0 0 0 3px rgba(37, 99, 201, 0.18);
}

body.pc-contacts .pcc-form input.pcc-email {
	padding-left: 48px;
	background: #FFFFFF url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' fill='none' stroke='%2316224F' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round' viewBox='0 0 24 24'%3E%3Crect x='3' y='5' width='18' height='14' rx='2'/%3E%3Cpath d='m3 7 9 6 9-6'/%3E%3C/svg%3E") no-repeat 16px center;
}

body.pc-contacts .pcc-form textarea {
	height: 166px;
	resize: vertical;
}

/* Topic: radio buttons laid out as cards */
body.pc-contacts .pcc-form .pcc-options {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 18px;
}

body.pc-contacts .pcc-form .pcc-options .wpcf7-list-item {
	margin: 0;
}

body.pc-contacts .pcc-form .pcc-options label {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 10px;
	height: 100%;
	box-sizing: border-box;
	padding: 20px 12px;
	border: 2px solid var(--pcc-field-line);
	border-radius: 6px;
	background: #F7F9FC;
	cursor: pointer;
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

body.pc-contacts .pcc-form .pcc-options input[type="radio"] {
	appearance: none;
	width: 24px;
	height: 24px;
	margin: 0;
	border-radius: 50%;
	background: #E6EDF7;
	cursor: pointer;
	transition: box-shadow 0.2s ease, background-color 0.2s ease;
}

body.pc-contacts .pcc-form .pcc-options .wpcf7-list-item-label {
	font-family: var(--pcc-font);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	text-align: center;
	color: var(--pcc-navy);
}

body.pc-contacts .pcc-form .pcc-options label:hover {
	border-color: rgba(37, 99, 201, 0.55);
}

body.pc-contacts .pcc-form .pcc-options label:has(input:checked) {
	border-color: var(--pcc-gold);
	background: #FFFFFF;
}

body.pc-contacts .pcc-form .pcc-options input[type="radio"]:checked {
	background: var(--pcc-gold);
	box-shadow: inset 0 0 0 6px #E6EDF7;
}

body.pc-contacts .pcc-form .pcc-options input[type="radio"]:focus-visible {
	outline: 2px solid var(--pcc-gold);
	outline-offset: 2px;
}

/* Submit */
body.pc-contacts .pcc-form input.pcc-submit {
	width: 100%;
	margin-top: 4px;
	padding: 18px 24px;
	border: 0;
	border-radius: 6px;
	background: linear-gradient(100deg, var(--pcc-gold-bright) 0%, #2A66CD 55%, var(--pcc-gold-deep) 100%);
	box-shadow: 0 10px 22px rgba(15, 75, 180, 0.28);
	font-family: var(--pcc-font);
	font-size: 18px;
	font-weight: 700;
	color: #FFFFFF;
	cursor: pointer;
	transition: filter 0.2s ease, box-shadow 0.2s ease;
}

body.pc-contacts .pcc-form input.pcc-submit:hover,
body.pc-contacts .pcc-form input.pcc-submit:focus-visible {
	filter: brightness(1.06);
	box-shadow: 0 12px 26px rgba(15, 75, 180, 0.38);
}

body.pc-contacts .pcc-form .wpcf7-spinner {
	display: none;
	margin: -12px auto 0;
}

body.pc-contacts .pcc-form .wpcf7-form.submitting .wpcf7-spinner {
	display: block;
}

body.pc-contacts .pcc-form .wpcf7-not-valid-tip {
	margin-top: 6px;
	font-size: 13px;
}

body.pc-contacts .pcc-form .wpcf7-response-output {
	margin: 20px 0 0 !important;
	padding: 12px 16px !important;
	border-radius: 6px;
	font-family: var(--pcc-font);
	font-size: 15px;
	color: var(--pcc-navy);
}

/* ---------- Contact details ---------- */

body.pc-contacts .pcc-contacts {
	padding: 8px 0 88px;
}

body.pc-contacts .pcc-contacts .elementor-widget-wrap {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
}

body.pc-contacts .pcc-note {
	grid-column: 1 / -1;
	margin-bottom: 12px !important;
}

body.pc-contacts .pcc-note p {
	max-width: 640px;
	margin: 0 auto;
	font-size: 16px;
	line-height: 1.6;
	text-align: center;
	color: rgba(255, 255, 255, 0.72) !important;
}

body.pc-contacts .pcc-contact {
	padding: 20px;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 6px;
	background: rgba(255, 255, 255, 0.04);
}

body.pc-contacts .pcc-contact .elementor-icon-box-wrapper {
	display: flex;
	align-items: flex-start;
	gap: 14px;
	text-align: left;
}

body.pc-contacts .pcc-contact .elementor-icon-box-icon {
	flex: none;
	margin: 0 !important;
}

body.pc-contacts .pcc-contact .elementor-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 42px;
	height: 42px;
	border-radius: 4px;
	background: rgba(37, 99, 201, 0.18);
	font-size: 16px;
	color: var(--pcc-gold) !important;
	fill: var(--pcc-gold) !important;
}

body.pc-contacts .pcc-contact .elementor-icon :is(i, svg) {
	color: inherit !important;
	fill: currentColor !important;
}

body.pc-contacts .pcc-contact .elementor-icon svg {
	width: 1em;
	height: 1em;
}

body.pc-contacts .pcc-contact .elementor-icon-box-title {
	margin: 0 0 4px;
	font-size: 15px;
	font-weight: 700;
	color: #FFFFFF !important;
}

body.pc-contacts .pcc-contact .elementor-icon-box-title a {
	color: inherit !important;
}

body.pc-contacts .pcc-contact .elementor-icon-box-description {
	margin: 0;
	font-size: 14px;
	line-height: 1.5;
	overflow-wrap: anywhere;
	color: rgba(255, 255, 255, 0.72) !important;
}

/* ---------- Responsive ---------- */

@media (max-width: 767px) {
	body.pc-contacts [data-elementor-type="wp-page"] .elementor-section > .elementor-container {
		padding: 0 16px;
	}

	body.pc-contacts .pcc-intro {
		padding: 56px 0 36px;
	}

	body.pc-contacts .pcc-subtitle p {
		font-size: 17px;
	}

	body.pc-contacts .pcc-form .wpcf7 {
		padding: 28px 20px;
	}

	body.pc-contacts :is(.pcc-row, .pcc-form .pcc-options, .pcc-contacts .elementor-widget-wrap) {
		grid-template-columns: minmax(0, 1fr);
	}

	body.pc-contacts .pcc-form .pcc-options label {
		flex-direction: row;
		justify-content: flex-start;
		padding: 14px 16px;
	}

	body.pc-contacts .pcc-contacts {
		padding-bottom: 64px;
	}
}
