/* Shared hero and page layout; tokens and typography load first. */
@media (max-width: 1199px) {
.contact-hero {
padding: var(--space-24) 0 var(--space-24);
}

.contact-hero-grid {
grid-template-columns: minmax(0, 1fr);
}

.contact-hero-visual {
width: min(100%, 760px);
}
}

@media (max-width: 599px) {
.contact-hero {
padding: var(--space-16) 0 var(--space-24);
}

.contact-hero-visual {
padding: 0 0 var(--space-12) var(--space-4);
}

.contact-hero-media {
height: 390px;
	border-radius: var(--radius-xl);
}

.contact-hero-note {
padding: var(--space-6);
}
}

.contact-hero {
position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: var(--space-32) 0 var(--space-32);
	background: var(--surface-sunken);
}

.contact-hero::before {
position: absolute;
	z-index: -1;
	top: -150px;
	right: -100px;
	width: 440px;
	height: 440px;
	border-radius: 50%;
	background: var(--container-cool);
	content: "";
}

.contact-hero::after {
position: absolute;
	z-index: -1;
	bottom: -170px;
	left: 8%;
	width: 330px;
	height: 330px;
	border: 1px solid var(--border-subtle);
	border-radius: 50%;
	content: "";
}

.contact-hero-grid {
display: grid;
	grid-template-columns: minmax(0, 0.82fr) minmax(440px, 0.68fr);
	align-items: center;
	gap: var(--space-8);
}

.contact-hero h1 {
max-width: 760px;
	margin: 0 0 var(--space-6);
}

.contact-hero-lead {
max-width: var(--measure-tight);
	margin: 0;
	color: var(--text-primary);
}

.contact-hero-visual {
position: relative;
	padding: 0 0 var(--space-16) var(--space-8);
}

.contact-hero-media {
height: 520px;
	margin: 0;
	overflow: hidden;
	border-radius: var(--radius-xl);
	background: var(--container-cool);
	box-shadow: var(--shadow-md);
}

.contact-hero-media img {
width: 100%;
	height: 100%;
	object-fit: cover;
}

.contact-hero-note {
position: absolute;
	bottom: 0;
	left: 0;
	width: min(360px, 86%);
	padding: var(--space-6) var(--space-8);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-xl);
	background: var(--surface-base);
	box-shadow: var(--shadow-md);
	backdrop-filter: blur(12px);
}

.contact-hero-note p {
margin: 0 0 var(--space-4);
	color: var(--text-secondary);
}

.contact-hero-note a {
display: inline-flex;
	align-items: center;
	gap: var(--space-3);
	color: var(--brand);
}

.contact-hero-note svg {
width: 20px;
	height: 20px;
	color: var(--accent-text);
}

.contact-main {
padding: var(--section-space) 0;
	background: var(--surface-base);
}

.contact-layout {
display: grid;
	grid-template-columns: minmax(280px, 0.52fr) minmax(0, 1fr);
	align-items: start;
	gap: var(--space-8);
}

.contact-details {
position: sticky;
	top: 130px;
}

.contact-details h2 {
margin: 0 0 var(--space-6);
}

.contact-details-intro {
margin: 0 0 var(--space-8);
	color: var(--text-secondary);
}

.contact-detail-list {
display: grid;
	margin: 0;
	border-top: 1px solid var(--border-subtle);
}

.contact-detail {
display: grid;
	grid-template-columns: 42px minmax(0, 1fr);
	gap: var(--space-4);
	padding: var(--space-6) 0;
	border-bottom: 1px solid var(--border-subtle);
}

.contact-detail-icon {
display: grid;
	width: 42px;
	height: 42px;
	border-radius: 50%;
	background: var(--container-cool);
	color: var(--brand);
	place-items: center;
}

.contact-detail-icon svg {
width: 19px;
	height: 19px;
}

.contact-detail dt {
margin-bottom: var(--space-1);
	color: var(--text-secondary);
}

.contact-detail dd {
margin: 0;
	color: var(--brand);
}

.contact-detail a {
overflow-wrap: anywhere;
	color: inherit;
}

.contact-detail a:hover {
color: var(--accent-text);
}

.contact-form-card {
position: relative;
	padding: var(--space-8);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-xl);
	background: var(--surface-raised);
	box-shadow: var(--shadow-md);
}

.contact-form-card::before {
position: absolute;
	top: 24px;
	right: 24px;
	width: 68px;
	height: 68px;
	border: 1px solid var(--border-subtle);
	border-radius: 50%;
	content: "";
}

.contact-form-heading {
max-width: 620px;
	margin-bottom: var(--space-12);
}

.contact-form-heading h2 {
margin: 0 0 var(--space-4);
}

.contact-form-heading > p:not(.eyebrow) {
margin: 0;
	color: var(--text-secondary);
}

.contact-form-card .gform_wrapper,
.contact-form-card .gform_wrapper.gravity-theme {
margin: 0;
	color: var(--text-primary);
}

.contact-form-card .gform_heading {
display: none;
}

.contact-form-card .gform_fields,
.contact-form-card .gform_wrapper.gravity-theme .gform_fields {
display: grid;
	grid-template-columns: repeat(12, minmax(0, 1fr));
	gap: var(--space-4) var(--space-4);
}

.contact-form-card .gfield,
.contact-form-card .gform_wrapper.gravity-theme .gfield {
grid-column: 1 / -1;
	margin: 0;
	padding: 0;
}

.contact-form-card .gfield.gfield--width-half {
grid-column: span 6;
}

.contact-form-card .gfield.gfield--width-third {
grid-column: span 4;
}

.contact-form-card .gfield_label,
.contact-form-card .gform_wrapper.gravity-theme .gfield_label {
display: inline-block;
	margin: 0 0 var(--space-2);
	color: var(--brand);
	font: var(--weight-medium) 16px/1.4 var(--font-label) !important;
}

.contact-form-card .gfield_required {
margin-left: var(--space-1);
	color: var(--error);
}

.contact-form-card input[type="text"],
.contact-form-card input[type="email"],
.contact-form-card input[type="tel"],
.contact-form-card input[type="url"],
.contact-form-card input[type="number"],
.contact-form-card input[type="date"],
.contact-form-card select,
.contact-form-card textarea,
.contact-form-card .gform_wrapper.gravity-theme input[type="text"],
.contact-form-card .gform_wrapper.gravity-theme input[type="email"],
.contact-form-card .gform_wrapper.gravity-theme input[type="tel"],
.contact-form-card .gform_wrapper.gravity-theme select,
.contact-form-card .gform_wrapper.gravity-theme textarea {
width: 100%;
	min-height: 58px;
	margin: 0;
	padding: var(--space-4) var(--space-4);
	border: 1px solid var(--border-strong) !important;
	border-radius: var(--radius-md) !important;
	outline: 0;
	background: var(--surface-base);
	color: var(--brand);
	font: var(--weight-regular) 16px/1.5 var(--font-body) !important;
	box-shadow: var(--shadow-md);
	transition: border-color var(--state-duration) var(--ease-out), box-shadow var(--transition-duration) var(--ease-out), background var(--state-duration) var(--ease-out);
}

.contact-form-card textarea,
.contact-form-card .gform_wrapper.gravity-theme textarea {
min-height: 160px;
	resize: vertical;
}

.contact-form-card input[type="text"],
.contact-form-card input[type="email"],
.contact-form-card input[type="tel"],
.contact-form-card input[type="url"],
.contact-form-card input[type="number"],
.contact-form-card input[type="date"],
.contact-form-card select {
height: 68px;
	min-height: 68px;
	padding-block: var(--space-4);
}

.contact-form-card select {
appearance: none;
	background-image: linear-gradient(45deg, transparent 50%, var(--brand) 50%),
		linear-gradient(135deg, var(--brand) 50%, transparent 50%);
	background-position: calc(100% - 21px) 26px,
		calc(100% - 16px) 26px;
	background-repeat: no-repeat;
	background-size: 5px 5px;
}

.contact-form-card input:focus,
.contact-form-card select:focus,
.contact-form-card textarea:focus {
border-color: var(--border-strong) !important;
	background: var(--surface-base);
	box-shadow: 0 0 0 3px var(--cool-2);
}

.contact-form-card ::placeholder {
color: var(--text-secondary);
	opacity: 1;
}

.contact-form-card .gfield_description,
.contact-form-card .gform_wrapper.gravity-theme .gfield_description {
padding-top: var(--space-2);
	color: var(--text-secondary);
}

.contact-form-card .gchoice,
.contact-form-card .ginput_container_consent {
display: flex;
	align-items: flex-start;
	gap: var(--space-2);
}

.contact-form-card input[type="checkbox"],
.contact-form-card input[type="radio"] {
flex: 0 0 auto;
	width: 19px;
	height: 19px;
	margin: var(--space-1) 0 0;
	accent-color: var(--brand);
}

.contact-form-card .gchoice label,
.contact-form-card .ginput_container_consent label {
color: var(--text-primary);
}

.contact-form-card .gform_footer,
.contact-form-card .gform_wrapper.gravity-theme .gform_footer {
margin: var(--space-8) 0 0;
	padding: 0;
}

.contact-form-card .form-submit-row {
display: flex;
	align-items: center;
	gap: var(--space-4);
}

.contact-form-card .form-privacy {
max-width: 430px;
	margin: 0;
	color: var(--text-secondary);
	font: var(--weight-regular) var(--fs-body-sm)/var(--lh-body-sm) var(--font-body);
}

.contact-form-card .form-privacy a {
color: var(--brand);
	text-decoration: underline;
	text-underline-offset: 0.2em;
}

.contact-form-card .form-privacy a:hover {
text-decoration-thickness: 2px;
}

.contact-form-card .gform_button,
.contact-form-card .gform_wrapper.gravity-theme .gform_footer input[type="submit"],
.contact-form-card .gform_wrapper.gravity-theme .gform_footer button {
display: inline-flex;
	min-height: 44px !important;
	align-items: center;
	justify-content: center;
	margin: 0;
	padding: 11px var(--space-6) !important;
	border: 1px solid var(--brand) !important;
	border-radius: var(--radius-full) !important;
	background: var(--brand) !important;
	color: var(--surface-base) !important;
	font: var(--weight-medium) 16px/20px var(--font-label) !important;
	text-align: center;
	cursor: pointer;
	transition: background-color var(--duration-fast) var(--ease-in-out), border-color var(--duration-fast) var(--ease-in-out), transform var(--duration-fast) var(--ease-out);
}

.contact-form-card .gform_button:hover,
.contact-form-card .gform_wrapper.gravity-theme .gform_footer input[type="submit"]:hover,
.contact-form-card .gform_wrapper.gravity-theme .gform_footer button:hover {
border-color: var(--brand-hover) !important;
	background: var(--brand-hover) !important;
	color: var(--on-brand) !important;
	transform: translateY(-2px);
}

.contact-form-card .gform_button:active,
.contact-form-card .gform_wrapper.gravity-theme .gform_footer input[type="submit"]:active,
.contact-form-card .gform_wrapper.gravity-theme .gform_footer button:active {
border-color: var(--brand-active) !important;
	background: var(--brand-active) !important;
	color: var(--on-brand) !important;
	transform: none;
}

.contact-form-card .gform_button:focus-visible,
.contact-form-card .gform_wrapper.gravity-theme .gform_footer input[type="submit"]:focus-visible,
.contact-form-card .gform_wrapper.gravity-theme .gform_footer button:focus-visible {
outline: 3px solid var(--focus-ring);
	outline-offset: 3px;
}

.contact-form-card .gform_validation_errors,
.contact-form-card .gform_wrapper.gravity-theme .gform_validation_errors {
margin: 0 0 var(--space-6);
	padding: var(--space-4) var(--space-4);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-lg);
	background: var(--error-container);
	box-shadow: none;
}

.contact-form-card .gform_validation_errors h2,
.contact-form-card .gform_wrapper.gravity-theme .gform_validation_errors h2 {
margin: 0;
	color: var(--error);
}

.contact-form-card .gfield_error input,
.contact-form-card .gfield_error select,
.contact-form-card .gfield_error textarea {
border-color: var(--error);
}

.contact-form-card .validation_message,
.contact-form-card .gform_wrapper.gravity-theme .validation_message {
border: 0;
	background: transparent;
	color: var(--error);
}

.contact-form-card .gform_confirmation_message {
padding: var(--space-8);
	border: 1px solid var(--border-subtle);
	border-radius: var(--radius-lg);
	background: var(--container-navy);
	color: var(--brand);
}

.contact-form-card .gform-theme.gform_wrapper {
--gf-ctrl-size: 68px;
	--gf-ctrl-btn-size: 44px;
	--gf-ctrl-btn-radius: 999px;
	--gf-ctrl-btn-bg-color-primary: var(--brand);
	--gf-ctrl-btn-color-primary: var(--surface-base);
	--gf-ctrl-btn-border-color-primary: var(--brand);
}

.contact-form-card .gform-theme.gform_wrapper .gform_fields {
row-gap: var(--space-4) !important;
	column-gap: var(--space-4) !important;
}

.contact-form-card .gform-theme.gform_wrapper input[type="text"],
.contact-form-card .gform-theme.gform_wrapper input[type="email"],
.contact-form-card .gform-theme.gform_wrapper input[type="tel"],
.contact-form-card .gform-theme.gform_wrapper input[type="url"],
.contact-form-card .gform-theme.gform_wrapper input[type="number"],
.contact-form-card .gform-theme.gform_wrapper input[type="date"],
.contact-form-card .gform-theme.gform_wrapper select {
height: 52px !important;
	min-height: 52px !important;
	padding-block: var(--space-4) !important;
}

.contact-map {
padding: 0 0 var(--space-32);
	background: var(--surface-base);
}

.contact-map-card {
display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(500px, 0.5fr);
	overflow: hidden;
	border-radius: var(--radius-xl);
	background: var(--brand);
	color: var(--surface-base);
	box-shadow: var(--shadow-md);
}

.contact-map-visual {
position: relative;
	min-height: 430px;
	background: url("/wp-content/uploads/2026/09/starDentalSign.webp") top / cover;
}

.contact-map-copy {
display: flex;
	flex-direction: column;
	align-items: flex-start;
	justify-content: center;
	padding: var(--space-8);
}

.contact-map-copy h2 {
margin: 0 0 var(--space-4);
	color: var(--surface-base);
}

.contact-map-copy address {
margin-bottom: var(--space-6);
	color: var(--text-on-dark-muted);
}

@media (max-width: 1199px) {
.contact-hero {
padding: var(--space-24) 0 var(--space-24);
}

.contact-hero-grid,
.contact-layout,
.contact-map-card {
grid-template-columns: minmax(0, 1fr);
}

.contact-hero-visual {
width: min(100%, 760px);
}

.contact-details {
position: static;
}

.contact-map-visual {
min-height: 390px;
}
}

@media (max-width: 599px) {
.contact-hero {
padding: var(--space-16) 0 var(--space-24);
}

.contact-hero-visual {
padding: 0 0 var(--space-12) var(--space-4);
}

.contact-hero-media {
height: 390px;
	border-radius: var(--radius-xl);
}

.contact-hero-note {
padding: var(--space-6);
}

.contact-main {
padding: var(--space-16) 0;
}

.contact-form-card {
padding: var(--space-8) var(--space-6);
	border-radius: var(--radius-xl);
}

.contact-form-card::before {
display: none;
}

.contact-form-card .gfield.gfield--width-half,
.contact-form-card .gfield.gfield--width-third {
grid-column: 1 / -1;
}

.contact-form-card .gform_button,
.contact-form-card .gform_wrapper.gravity-theme .gform_footer input[type="submit"],
.contact-form-card .gform_wrapper.gravity-theme .gform_footer button {
width: 100%;
}

.contact-form-card .form-submit-row {
align-items: stretch;
	flex-direction: column;
}

.contact-map {
padding-bottom: var(--space-16);
}

.contact-map-visual {
min-height: 300px;
}
}

@media (prefers-reduced-motion: reduce) {
.contact-form-card *,
.contact-form-card *::before,
.contact-form-card *::after {
transition-duration: 0.01ms !important;
}
}

.new-patients-section { padding-block: var(--section-space); background: var(--surface-base); scroll-margin-top: 128px; }
.new-patients-section h2 { margin-bottom: var(--space-6); }
.new-patients-section .patient-steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: var(--space-6);
  padding: 0;
  margin: var(--space-8) 0;
  list-style-position: inside;
}
.new-patients-section .patient-steps > li {
  min-width: 0;
  padding: var(--space-6);
  border: 1px solid var(--border-subtle);
  border-radius: var(--radius-lg);
  background: var(--surface-raised);
}
.new-patients-section .patient-steps > li::marker {
  content: counter(list-item, decimal-leading-zero) ". ";
  color: var(--accent-text);
  font: var(--weight-medium) var(--fs-label)/var(--lh-label) var(--font-label);
}
.new-patients-section .patient-steps h3 { margin: var(--space-4) 0; }
.new-patients-section .patient-steps p { margin: 0; }
.new-patients-section .patient-hours {
  max-width: none;
  padding-top: var(--space-6);
  margin: 0 0 var(--space-6);
  border-top: 1px solid var(--border-subtle);
  color: var(--text-secondary);
  text-wrap: pretty;
}
.new-patients-section .patient-actions { margin-bottom: var(--space-4); }
.new-patients-section .patient-actions + p { margin-bottom: 0; }
.contact-detail { display: block; }
.contact-detail dt { display: flex; align-items: center; gap: var(--space-3); }
.contact-detail dd { margin: var(--space-3) 0 0; }
@media (max-width: 899px) { .new-patients-section .patient-steps { grid-template-columns: 1fr; } }
