/*
 * Dwarka Puri — CF7 Style Override
 * Version: 2.0.0
 *
 * Overrides Contact Form 7 default styles to match our
 * theme design system. Loaded after both main.css and
 * CF7's own contact-form-7 stylesheet.
 *
 * Scope: .dp-cf7-form (applied via html_class in shortcode)
 * This ensures overrides don't affect any other CF7 forms.
 */

/* ── Reset CF7 wrapper ── */
.dp-cf7-form,
.dp-cf7-form.wpcf7 {
	margin: 0;
	padding: 0;
}

/* ── Remove CF7 default paragraph wrapper
   (wpcf7_autop_or_not filter set to false,
    but some CF7 versions still add spacing) ── */
.dp-cf7-form .wpcf7-form p {
	margin: 0;
	padding: 0;
}

/* ── CF7 field groups — match our .ff system ── */
.dp-cf7-form .wpcf7-form-control-wrap {
	display: block;
	width: 100%;
}

/* ── Text / Tel / Email / Number inputs ── */
.dp-cf7-form input[type="text"],
.dp-cf7-form input[type="tel"],
.dp-cf7-form input[type="email"],
.dp-cf7-form input[type="number"],
.dp-cf7-form input[type="url"] {
	width: 100%;
	background: var(--white, #FFFFFF);
	border: 1.5px solid rgba(0, 0, 0, 0.12);
	color: var(--ink, #2A1A0A);
	padding: 13px 15px;
	font-family: var(--sans, 'DM Sans', sans-serif);
	font-size: 15px;
	font-weight: 400;
	outline: none;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
	transition: border-color 0.3s ease;
	box-shadow: none;
}

.dp-cf7-form input[type="text"]:focus,
.dp-cf7-form input[type="tel"]:focus,
.dp-cf7-form input[type="email"]:focus,
.dp-cf7-form input[type="number"]:focus,
.dp-cf7-form input[type="url"]:focus {
	border-color: var(--gold, #B8751A);
	background: #FFFFFF;
	box-shadow: none;
	outline: none;
}

.dp-cf7-form input::placeholder {
	color: #BBB;
	font-weight: 300;
}

/* ── Select / Dropdown ── */
.dp-cf7-form select {
	width: 100%;
	background: var(--white, #FFFFFF);
	border: 1.5px solid rgba(0, 0, 0, 0.12);
	color: var(--ink, #2A1A0A);
	padding: 13px 40px 13px 15px;
	font-family: var(--sans, 'DM Sans', sans-serif);
	font-size: 15px;
	font-weight: 400;
	outline: none;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transition: border-color 0.3s;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M0 0l5 6 5-6z' fill='%23B8751A'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 15px center;
}

.dp-cf7-form select:focus {
	border-color: var(--gold, #B8751A);
	box-shadow: none;
	outline: none;
}

/* ── Textarea ── */
.dp-cf7-form textarea {
	width: 100%;
	background: var(--white, #FFFFFF);
	border: 1.5px solid rgba(0, 0, 0, 0.12);
	color: var(--ink, #2A1A0A);
	padding: 13px 15px;
	font-family: var(--sans, 'DM Sans', sans-serif);
	font-size: 15px;
	font-weight: 400;
	outline: none;
	border-radius: 0;
	resize: none;
	height: 82px;
	transition: border-color 0.3s;
	box-shadow: none;
}

.dp-cf7-form textarea:focus {
	border-color: var(--gold, #B8751A);
	box-shadow: none;
	outline: none;
}

/* ── Submit Button ── */
.dp-cf7-form input[type="submit"],
.dp-cf7-form .wpcf7-submit {
	display: inline-block;
	width: 100%;
	background: var(--gold, #B8751A);
	color: var(--ink, #2A1A0A);
	border: none;
	padding: 16px 24px;
	font-family: var(--sans, 'DM Sans', sans-serif);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	cursor: pointer;
	border-radius: 0;
	-webkit-appearance: none;
	appearance: none;
	transition: background 0.3s ease, transform 0.2s ease;
	margin-top: 6px;
	box-shadow: none;
}

.dp-cf7-form input[type="submit"]:hover,
.dp-cf7-form .wpcf7-submit:hover {
	background: var(--gold2, #D4952E);
	transform: translateY(-1px);
}

.dp-cf7-form input[type="submit"]:disabled,
.dp-cf7-form .wpcf7-submit:disabled {
	opacity: 0.65;
	cursor: not-allowed;
	transform: none;
}

/* ── Checkboxes and Radios ── */
.dp-cf7-form input[type="checkbox"],
.dp-cf7-form input[type="radio"] {
	accent-color: var(--gold, #B8751A);
	width: 16px;
	height: 16px;
	cursor: pointer;
}

.dp-cf7-form .wpcf7-list-item {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-right: 16px;
	margin-bottom: 8px;
}

.dp-cf7-form .wpcf7-list-item label {
	font-size: 14px;
	color: var(--ink2, #3D2810);
	cursor: pointer;
	font-weight: 400;
}

/* ── File Input ── */
.dp-cf7-form input[type="file"] {
	font-family: var(--sans, 'DM Sans', sans-serif);
	font-size: 13px;
	color: var(--grey, #7A6555);
	padding: 8px 0;
}

/* ── Validation — Invalid state ── */
.dp-cf7-form .wpcf7-not-valid {
	border-color: #D44 !important;
	background: #FFF8F8 !important;
}

.dp-cf7-form .wpcf7-not-valid-tip {
	display: block;
	font-size: 12px;
	color: #C0392B;
	margin-top: 5px;
	font-family: var(--sans, 'DM Sans', sans-serif);
	font-weight: 400;
}

/* ── Response Output Messages ── */
.dp-cf7-form .wpcf7-response-output {
	margin: 14px 0 0 0;
	padding: 12px 16px;
	border: 1px solid;
	font-family: var(--sans, 'DM Sans', sans-serif);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.5;
	border-radius: 0;
}

/* Success */
.dp-cf7-form .wpcf7-mail-sent-ok {
	background: #F0FAF4;
	border-color: #A8D5B5;
	color: #1A5C30;
}

/* Error / Failed */
.dp-cf7-form .wpcf7-mail-sent-ng,
.dp-cf7-form .wpcf7-aborted {
	background: #FEF2F2;
	border-color: #FCA5A5;
	color: #7F1D1D;
}

/* Validation failed */
.dp-cf7-form .wpcf7-validation-errors,
.dp-cf7-form .wpcf7-acceptance-missing {
	background: #FFFBEB;
	border-color: #FCD34D;
	color: #78350F;
}

/* Spam */
.dp-cf7-form .wpcf7-spam-blocked {
	background: #FEF2F2;
	border-color: #FCA5A5;
	color: #7F1D1D;
}

/* ── Spinner / Loading state ── */
.dp-cf7-form .wpcf7-spinner {
	display: inline-block;
	vertical-align: middle;
	margin-left: 8px;
	width: 20px;
	height: 20px;
	border: 2px solid rgba(184, 117, 26, 0.3);
	border-top-color: var(--gold, #B8751A);
	border-radius: 50%;
	animation: dp-cf7-spin 0.7s linear infinite;
}

.dp-cf7-form .wpcf7-spinner.is-active {
	display: inline-block;
}

@keyframes dp-cf7-spin {
	to { transform: rotate(360deg); }
}

/* ── Admin / Setup notice ── */
.dp-cf7-setup-notice {
	padding: 16px 20px;
	background: #FFFBEB;
	border: 1px solid #FCD34D;
	border-left: 3px solid var(--gold, #B8751A);
}

.dp-cf7-setup-notice p {
	font-size: 14px;
	color: #78350F;
	line-height: 1.6;
	margin: 0;
}

.dp-cf7-setup-notice a {
	color: var(--gold, #B8751A);
	font-weight: 600;
}

.dp-cf7-notice {
	font-size: 14px;
	color: var(--grey, #7A6555);
	padding: 16px 0;
}

/* ── Popup form — brochure modal specific ── */
#bro-popup-overlay .dp-cf7-form input[type="submit"],
#bro-popup-overlay .dp-cf7-form .wpcf7-submit {
	margin-top: 6px;
}

/* ── Hero form — right panel specific ── */
.hero-form .dp-cf7-form input[type="text"],
.hero-form .dp-cf7-form input[type="tel"],
.hero-form .dp-cf7-form input[type="email"],
.hero-form .dp-cf7-form select {
	background: var(--white, #FFFFFF);
}

/* ── Contact section form specific ── */
.contact-right .dp-cf7-form {
	width: 100%;
}

/* ── Responsive — stack on mobile ── */
@media (max-width: 768px) {
	.dp-cf7-form input[type="text"],
	.dp-cf7-form input[type="tel"],
	.dp-cf7-form input[type="email"],
	.dp-cf7-form select,
	.dp-cf7-form textarea,
	.dp-cf7-form input[type="submit"] {
		font-size: 16px; /* Prevent iOS zoom on focus */
	}
}
