/* =========================================================================
   Gravity Forms — matches the Developer Handoff .dc.html reference exactly.
   No labels (compact form, placeholders only). .rw-in visuals.
   Everything scoped under .gform_wrapper so it can never bleed.
   ========================================================================= */

/* Wrapper defaults (inherit body font, dark text). */
.gform_wrapper {
	font-family: 'Schibsted Grotesk', var(--font-sans, sans-serif);
	color: #16181D;
	font-size: 14.5px;
	line-height: 1.5;
}

/* Neutralize GF's Orbital theme tokens so nothing lime-y leaks in. */
.gform_wrapper.gform-theme,
.gform_wrapper.gform-theme--foundation,
.gform_wrapper.gform-theme--orbital,
.gform_wrapper {
	--gf-color-primary: #0E1733;
	--gf-color-primary-contrast: #0E1733;
	--gf-color-primary-darker: #050B24;
	--gf-color-secondary: #D9F154;
	--gf-color-out-ctrl-light: #E5E6E8;
	--gf-color-out-ctrl-dark: #0E1733;
	--gf-radius: 9px;
	--gf-font: inherit;
}

/* Field list — single column, 16px vertical rhythm (matches .dc.html margin-top:16px). */
.gform_wrapper .gform_fields {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.gform_wrapper .gform_fields > .gfield {
	list-style: none;
	margin: 0;
	padding: 0;
}

/* NO LABELS — placeholders only (per spec). */
.gform_wrapper .gfield > label.gfield_label,
.gform_wrapper .gfield > .gfield_label,
.gform_wrapper .gform-field-label--type-sub,
.gform_wrapper .ginput_container_name > span > label,
.gform_wrapper .gfield_label_before_complex { display: none !important; }

/* Also kill the "(Required)" chunk everywhere. */
.gform_wrapper .gfield_required,
.gform_wrapper .gfield_required_text,
.gform_wrapper .gfield_required_asterisk { display: none !important; }

/* .rw-in visuals — exact match to Contact.dc.html:22
   NB: GF adds .gform_legacy_markup_wrapper with a 6-pseudo-class rule that
   forces padding:12px 8px; we override with !important on padding. */
.gform_wrapper .ginput_container input[type="text"],
.gform_wrapper .ginput_container input[type="email"],
.gform_wrapper .ginput_container input[type="tel"],
.gform_wrapper .ginput_container input[type="url"],
.gform_wrapper .ginput_container input[type="number"],
.gform_wrapper .ginput_container select,
.gform_wrapper .ginput_container textarea,
.gform_legacy_markup_wrapper .ginput_container input,
.gform_legacy_markup_wrapper .ginput_container select,
.gform_legacy_markup_wrapper .ginput_container textarea {
	width: 100%;
	box-sizing: border-box;
	border: 1px solid #CBCDD1 !important;
	border-radius: 9px !important;
	padding: 12px 14px !important;
	font-size: 14.5px !important;
	font-family: 'Schibsted Grotesk', var(--font-sans, sans-serif) !important;
	color: #16181D !important;
	background: #fff !important;
	outline: none !important;
	margin: 0 !important;
	line-height: 1.4 !important;
	letter-spacing: 0 !important;
}
.gform_wrapper .ginput_container select,
.gform_legacy_markup_wrapper .ginput_container select { padding-right: 38px !important; }
.gform_wrapper .ginput_container select {
	appearance: none;
	-webkit-appearance: none;
	cursor: pointer;
	background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'><path d='M1 1l5 5 5-5' fill='none' stroke='%230E1733' stroke-width='1.6'/></svg>");
	background-repeat: no-repeat;
	background-position: right 14px center;
	padding-right: 38px;
}
.gform_wrapper .ginput_container textarea {
	resize: vertical;
	min-height: 110px;
	line-height: 1.6;
}
.gform_wrapper .ginput_container input::placeholder,
.gform_wrapper .ginput_container textarea::placeholder {
	color: #9BA0AB;
	opacity: 1;
	font-family: inherit;
	font-size: 14.5px;
}
.gform_wrapper .ginput_container input:focus,
.gform_wrapper .ginput_container select:focus,
.gform_wrapper .ginput_container textarea:focus { border-color: #0E1733; }
.gform_wrapper .gfield_error .ginput_container input,
.gform_wrapper .gfield_error .ginput_container select,
.gform_wrapper .gfield_error .ginput_container textarea { border-color: #B94A2E; }

/* Name field — First + Last side by side, no sublabels. */
.gform_wrapper .ginput_container_name.gform-grid-row,
.gform_wrapper .ginput_container_name {
	display: grid !important;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
	gap: 12px !important;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	box-sizing: border-box;
}
.gform_wrapper .ginput_container_name > span {
	display: block !important;
	width: 100% !important;
	min-width: 0 !important;
	max-width: 100% !important;
	flex: initial !important;
	padding: 0 !important;
	margin: 0 !important;
	box-sizing: border-box !important;
}
.gform_wrapper .ginput_container_name > span > input {
	width: 100% !important;
	max-width: 100% !important;
	box-sizing: border-box !important;
}
@media (max-width: 480px) {
	.gform_wrapper .ginput_container_name { grid-template-columns: minmax(0, 1fr) !important; gap: 10px !important; }
}

/* Description shows below input as small mono note (rare — most fields skip). */
.gform_wrapper .gfield_description { font-size: 12px; color: #575B62; margin-top: 6px; }

/* Validation stays subtle inline. */
.gform_wrapper .gfield_validation_message,
.gform_wrapper .validation_message {
	color: #B94A2E;
	font-size: 12.5px;
	margin-top: 6px;
	font-weight: 500;
}
.gform_wrapper .gform_validation_errors { display: none; }

/* Buttons — LIME primary (matches Contact.dc.html:98 + Dental.dc.html:70). */
.gform_wrapper .gform_footer,
.gform_wrapper .gform_page_footer {
	display: flex;
	gap: 10px;
	margin: 22px 0 0;
	padding: 0;
	border: 0;
	flex-wrap: wrap;
}
.gform_wrapper .gform_button,
.gform_wrapper .gform_next_button,
.gform_wrapper input[type="submit"].gform_button,
.gform_wrapper button.gform_button {
	width: 100%;
	background: #D9F154;
	color: #0E1733;
	font-family: 'Schibsted Grotesk', var(--font-sans, sans-serif);
	font-size: 15px;
	font-weight: 700;
	padding: 15px;
	border-radius: 9px;
	border: 0;
	cursor: pointer;
	transition: transform 0.2s ease;
	line-height: 1;
	min-height: 48px;
	appearance: none;
	-webkit-appearance: none;
}
.gform_wrapper .gform_button:hover,
.gform_wrapper .gform_next_button:hover { transform: translateY(-2px); color: #0E1733; }
.gform_wrapper .gform_previous_button {
	width: auto;
	background: transparent;
	color: #0E1733;
	border: 1px solid #CBCDD1;
	padding: 13px 22px;
	border-radius: 9px;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 600;
	cursor: pointer;
	transition: background 0.15s ease;
}
.gform_wrapper .gform_previous_button:hover { background: #F4F5F6; }

/* Multi-step step indicator (dental) — subtle pills. */
.gform_wrapper .gf_page_steps {
	display: flex; gap: 8px; flex-wrap: wrap; align-items: center;
	list-style: none; margin: 0 0 20px; padding: 0;
}
.gform_wrapper .gf_step {
	display: flex; align-items: center; gap: 8px;
	padding: 6px 12px 6px 8px; border-radius: 999px;
	font-family: inherit; font-size: 12.5px;
	color: #8B8F98; font-weight: 500;
	list-style: none; margin: 0;
	letter-spacing: 0; text-transform: none;
}
.gform_wrapper .gf_step_number {
	display: inline-flex; align-items: center; justify-content: center;
	width: 22px; height: 22px; border-radius: 999px;
	background: #E5E6E8; color: #575B62;
	font-size: 11.5px; font-weight: 700; line-height: 1;
}
.gform_wrapper .gf_step_active { color: #16181D; background: rgba(14, 23, 51, .06); }
.gform_wrapper .gf_step_active .gf_step_number { background: #0E1733; color: #fff; }
.gform_wrapper .gf_step_completed .gf_step_number { background: #D9F154; color: #0E1733; }
.gform_wrapper .gf_step_label { font-weight: 600; }

/* Confirmation */
.gform_wrapper .gform_confirmation_message {
	padding: 18px;
	border-radius: 9px;
	background: rgba(217, 241, 84, .18);
	color: #16181D;
	border: 1px solid rgba(14, 23, 51, .08);
	font-size: 14.5px;
	line-height: 1.6;
}
