/*
 * Howe Dental - Contact Us (page 173), block "Send Messages".
 * Wrappers are Elementor containers with the design classes, the form is an Elementor Pro Form widget (.hd-cf-eform).
 * Block styles (.hd-cf, .hd-cf__grid, .hd-cf__form card, side cards) stay in the HTML widget "top";
 * this file only adapts Elementor containers and the Form widget markup to the design (.hd-cf__input, .hd-cf__btn ...).
 * Breakpoints are the design's (991 / 767 / 479), not Elementor's.
 */

/* ---------- Containers -> design wrappers ---------- */
.hd-cf-block.e-con,
.hd-cf-block .e-con { min-height: 0; border: 0; transition: none; }
.hd-cf-block .e-con > .elementor-widget.elementor-widget { margin: 0; }
.hd-cf-block .e-con.hd-cf,
.hd-cf-block .e-con.hd-cf__container { display: block; }
.hd-cf-block .e-con.hd-cf { padding: 96px 0 104px; } /* all widths: the design block ends with .hd-cf{padding:96px 0 104px} after its media queries */
.hd-cf-block .e-con.hd-cf__container {
	width: 100%;
	max-width: calc(var(--hd-max) + var(--hd-gutter) * 2);
	margin: 0 auto;
	padding: 0 var(--hd-gutter);
}
.hd-cf-block .e-con.hd-cf__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr);
	gap: 28px;
	align-items: start;
}
.hd-cf-block .e-con.hd-cf__form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	width: auto;
	max-width: none;
	padding: 40px 40px 42px;
}

/* ---------- Form widget ---------- */
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
}
/* Empty status line under the button, as in the design (p.hd-cf__status, min-height 1em) */
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-form::after { content: ""; display: block; min-height: 15px; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-form:has(.elementor-message)::after { display: none; }

.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-form-fields-wrapper {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	margin: 0;
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group {
	display: flex;
	flex-direction: column;
	flex-wrap: nowrap;
	align-items: stretch;
	gap: 8px;
	width: auto;
	max-width: none;
	min-width: 0;
	margin: 0;
	padding: 0;
}
/* Elementor gives controls flex-basis:100% ("labels above"); in a column that would override height:56px */
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group > * { flex: 0 0 auto; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group.elementor-col-100 { grid-column: 1 / -1; }

/* Labels (.hd-cf__label) + required mark (.hd-cf__req) */
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group > .elementor-field-label {
	display: flex; /* drops the trailing whitespace of Elementor's markup before the "*" */
	padding: 0;
	font-family: var(--hd-font-body);
	font-size: 15px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--hd-ink);
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-mark-required .elementor-field-label::after {
	content: "*";
	padding: 0;
	color: var(--hd-cyan-deep);
}

/* Inputs (.hd-cf__input) */
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group .elementor-field-textual {
	width: 100%;
	max-width: none;
	height: 56px;
	min-height: 0;
	padding: 0 18px;
	border: 0;
	border-radius: 16px;
	background: var(--hd-soft);
	box-shadow: 0 0 0 1px var(--hd-line) inset;
	font-family: var(--hd-font-body);
	font-size: 17px;
	font-weight: 400;
	line-height: normal;
	color: var(--hd-ink);
	outline: none;
	-webkit-appearance: none;
	appearance: none;
	transition: box-shadow .25s ease, background-color .25s ease;
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group .elementor-field-textual:hover { box-shadow: 0 0 0 1px rgba(1,188,214,.45) inset; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group .elementor-field-textual:focus {
	background-color: #FFFFFF;
	box-shadow: 0 0 0 2px var(--hd-cyan) inset, 0 0 0 5px rgba(1,188,214,.16);
}

/* Select (.hd-cf__select) */
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-select-wrapper { width: 100%; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-select-wrapper::before,
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-select-wrapper .select-caret-down-wrapper { display: none; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group .elementor-select-wrapper select.elementor-field-textual {
	padding-right: 48px;
	background: var(--hd-soft) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230097AC' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6l6 -6'/%3E%3C/svg%3E") right 18px center / 20px 20px no-repeat;
	cursor: pointer;
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group .elementor-select-wrapper select.elementor-field-textual:focus { background-color: #FFFFFF; }

/* Textarea (.hd-cf__area) */
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group textarea.elementor-field-textual {
	height: auto;
	min-height: 150px;
	padding: 16px 18px;
	resize: vertical;
	line-height: 1.6;
}

/* Checkbox "I'm a new patient" (.hd-cf__check-row + .hd-cf__box); its label "New patient" is for the email only */
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group-new_patient > .elementor-field-label { display: none; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-subgroup { display: flex; margin: 0; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-option {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0;
	padding: 0;
	font-size: 17px;
	font-weight: 500;
	line-height: normal;
	color: var(--hd-item);
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-option label {
	display: block;
	margin: 0;
	padding: 0;
	cursor: pointer;
	font: inherit;
	color: inherit;
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-option input[type="checkbox"] {
	position: relative;
	flex: 0 0 auto;
	width: 24px;
	height: 24px;
	margin: 0;
	border: 0;
	border-radius: 7px;
	background: var(--hd-soft);
	box-shadow: 0 0 0 1.5px rgba(20,32,58,.25) inset;
	-webkit-appearance: none;
	appearance: none;
	cursor: pointer;
	transition: background-color .2s ease, box-shadow .2s ease;
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-option input[type="checkbox"]:checked {
	background: var(--hd-cyan) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2314203A' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5l10 -10'/%3E%3C/svg%3E") center / 15px 15px no-repeat;
	box-shadow: none;
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-option input[type="checkbox"]:focus-visible { outline: 2px solid var(--hd-cyan-deep); outline-offset: 2px; }

/* Submit (.hd-cf__btn + .hd-cf__btn-icon) */
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit { margin-top: 6px; align-items: flex-start; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit .elementor-button {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: auto;
	height: 58px;
	min-height: 0;
	padding: 0 7px 0 26px;
	border: 0;
	border-radius: 999px;
	background: var(--hd-cyan);
	font-family: var(--hd-font-head);
	font-size: 17px;
	font-weight: 700;
	letter-spacing: .01em;
	line-height: 1;
	white-space: nowrap;
	color: var(--hd-ink);
	cursor: pointer;
	box-shadow: 0 16px 34px -14px rgba(1,188,214,.8);
	transition: background-color .3s ease, box-shadow .35s ease, transform .35s var(--hd-ease), color .3s ease;
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit .elementor-button:hover {
	background: var(--hd-cyan-soft);
	color: var(--hd-ink);
	transform: translateY(-2px);
	box-shadow: 0 22px 40px -14px rgba(1,188,214,.9);
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit .elementor-button:focus-visible { outline: 2px solid var(--hd-cyan-deep); outline-offset: 3px; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit .elementor-button-content-wrapper {
	display: flex;
	flex-direction: row-reverse;
	align-items: center;
	gap: 12px;
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit .elementor-button-icon {
	display: flex;
	align-items: center;
	justify-content: center;
	flex: 0 0 auto;
	width: 44px;
	height: 44px;
	margin: 0;
	border-radius: 50%;
	background: var(--hd-ink);
	color: #FFFFFF;
	font-size: 20px;
	line-height: 0;
	transition: transform .4s var(--hd-ease);
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit .elementor-button-icon svg { width: 20px; height: 20px; fill: none; stroke: currentColor; stroke-width: 1.9; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit .elementor-button:hover .elementor-button-icon { transform: rotate(45deg); }

/* Messages (.hd-cf__status) */
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-message {
	margin: 0;
	font-family: var(--hd-font-body);
	font-size: 15px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--hd-cyan-deep);
}
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-message::before { display: none; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-message.elementor-message-danger,
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-message.elementor-help-inline { color: #C0392B; }
.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-group .elementor-message { margin-top: -2px; font-size: 14px; }

/* ---------- Responsive (design breakpoints) ---------- */
@media screen and (max-width: 991px) {
	.hd-cf-block .e-con.hd-cf__grid { grid-template-columns: 1fr; }
}
@media screen and (max-width: 767px) {
	.hd-cf-block .e-con.hd-cf__form { padding: 30px 22px 32px; }
	.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-form-fields-wrapper { grid-template-columns: 1fr; }
}
@media screen and (max-width: 479px) {
	.hd-cf-block .e-con.hd-cf__form { padding: 24px 16px 26px; }
	.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit .elementor-button {
		display: flex;
		justify-content: space-between;
		width: 100%;
		height: auto;
		min-height: 56px;
		padding: 6px 6px 6px 22px;
		font-size: 16px;
		line-height: 1.25;
		white-space: normal;
		text-align: left;
	}
	.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit { align-items: stretch; }
	.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form .elementor-field-type-submit .elementor-button-content-wrapper { width: 100%; justify-content: space-between; }
}

/* Reduced motion: same as the design */
@media (prefers-reduced-motion: reduce) {
	.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form *,
	.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form *::before,
	.hd-cf-block.e-con .hd-cf-eform.elementor-widget-form *::after { transition-duration: .01ms !important; }
}
