/* Contact page composition owner.
   Shared Clinic cards and generic form controls remain owned by their canonical
   stylesheets; this file only adapts those components inside Contact. */

.gloskin-contact-main{
	padding-block:clamp(48px,6vw,84px);
}
.gloskin-contact-main__grid{
	display:grid;
	grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);
	align-items:start;
	gap:clamp(28px,3.4vw,52px);
}
.gloskin-contact-main__grid--clinics-only{
	grid-template-columns:minmax(0,1fr);
}
.gloskin-contact-main__clinics,
.gloskin-contact-main__form{
	min-width:0;
}
.gloskin-contact-main__clinics .gloskin-ui1-section-heading,
.gloskin-contact-main__form .gloskin-ui1-section-heading{
	max-width:none;
	margin:0;
	text-align:left;
}
.gloskin-contact-main__clinics .gloskin-ui1-section-heading{
	margin-bottom:clamp(20px,2.1vw,28px);
}
.gloskin-contact-main__form .gloskin-ui1-section-heading{
	margin-bottom:12px;
}
.gloskin-contact-main__clinics .gloskin-ui1-section-heading h2,
.gloskin-contact-main__form .gloskin-ui1-section-heading h2{
	margin-inline:0;
}
.gloskin-contact-main__clinics .gloskin-ui1-section-heading h2{
	font-size:clamp(1.55rem,1.9vw,2.05rem);
	line-height:1.08;
}
.gloskin-contact-main__form .gloskin-ui1-section-heading h2{
	font-size:clamp(1.7rem,2.1vw,2.2rem);
	line-height:1.08;
}
.gloskin-contact-main__clinics .gloskin-ui1-section-heading p{
	max-width:52ch;
	margin-inline:0;
}

/* Contact is intentionally 2-up. Neutralize the shared desktop remainder
   placement so every Clinic card returns to normal two-column source flow. */
.gloskin-contact-clinic-grid{
	grid-template-columns:repeat(2,minmax(0,1fr));
	gap:clamp(14px,1.5vw,20px);
	align-items:stretch;
}
.gloskin-contact-clinic-grid>.gloskin-clinic-card,
.gloskin-contact-clinic-grid>.gloskin-clinic-card:last-child:nth-child(3n+1),
.gloskin-contact-clinic-grid>.gloskin-clinic-card:nth-last-child(2):nth-child(3n+1),
.gloskin-contact-clinic-grid>.gloskin-clinic-card:last-child:nth-child(3n+2){
	grid-column:auto;
}
.gloskin-contact-clinic-grid .gloskin-clinic-card__body{
	min-height:116px;
	padding:14px 15px 16px;
}
.gloskin-contact-clinic-grid .gloskin-clinic-card__title{
	margin-bottom:6px;
	font-size:clamp(1rem,1.2vw,1.12rem);
}
.gloskin-contact-clinic-grid .gloskin-clinic-card__location{
	margin-bottom:14px;
}
.gloskin-contact-clinic-grid .gloskin-clinic-card__action{
	margin-top:auto;
}

/* One restrained Contact form surface. Field interaction remains core-owned. */
.gloskin-contact-main__form{
	padding:clamp(22px,2.5vw,34px);
	border:1px solid color-mix(in srgb,var(--gloskin-brand-border) 82%,transparent);
	border-radius:clamp(18px,2vw,24px);
	background:color-mix(in srgb,var(--gloskin-brand-ivory) 97%,var(--gloskin-bg));
	box-shadow:0 24px 60px color-mix(in srgb,var(--gloskin-text) 8%,transparent),0 4px 16px color-mix(in srgb,var(--gloskin-text) 4%,transparent);
}
.gloskin-contact-native__notice{
	margin:0 0 16px;
	padding:12px 14px;
	border:1px solid var(--gloskin-field-border);
	border-radius:var(--gloskin-field-radius);
	background:var(--gloskin-field-bg);
	font-size:.9rem;
	line-height:1.45;
}
.gloskin-contact-native__notice--error{
	border-color:var(--gloskin-accent-strong);
}
.gloskin-contact-native__intro{
	max-width:58ch;
	margin:0 0 22px;
	color:var(--gloskin-muted);
	font-size:.88rem;
	line-height:1.58;
}
.gloskin-contact-native__form{
	display:grid;
	gap:14px;
}
.gloskin-contact-native__grid{
	display:grid;
	grid-template-columns:minmax(0,1fr);
	gap:14px;
}
.gloskin-contact-main .gloskin-contact-native__form label{
	margin:0;
}
.gloskin-contact-native__message textarea{
	min-height:154px;
	resize:vertical;
}
.gloskin-contact-main .gloskin-contact-native__consent{
	display:grid;
	grid-template-columns:18px minmax(0,1fr);
	align-items:start;
	gap:10px;
	padding-top:4px;
	font-size:.88rem;
	line-height:1.5;
	cursor:pointer;
}
.gloskin-contact-main .gloskin-contact-native__consent input{
	margin-top:2px;
}
.gloskin-contact-native__config-error{
	margin:0;
	color:var(--gloskin-accent-strong);
	font-size:.88rem;
	line-height:1.45;
}
.gloskin-contact-native__form>.gloskin-ui1-button{
	width:100%;
	min-height:48px;
	justify-content:center;
}
.gloskin-contact-main input::placeholder,
.gloskin-contact-main textarea::placeholder{
	color:var(--gloskin-muted);
	opacity:.88;
}

@media (min-width:1025px){
	.gloskin-contact-main__form{
		position:sticky;
		top:calc(var(--gloskin-ui1-nav-sticky-top) + var(--gloskin-ui1-nav-sticky-height) + 20px);
	}
}

@media (min-width:1025px) and (max-height:920px){
	.gloskin-contact-main__form{
		max-height:calc(100dvh - var(--gloskin-ui1-nav-sticky-top) - var(--gloskin-ui1-nav-sticky-height) - 40px);
		overflow-y:auto;
		overscroll-behavior:contain;
		scrollbar-gutter:stable;
	}
}

@media (max-width:1024px){
	.gloskin-contact-main{
		padding-block:clamp(44px,7vw,68px);
	}
	.gloskin-contact-main__grid{
		grid-template-columns:minmax(0,1fr);
		gap:clamp(34px,5vw,48px);
	}
	.gloskin-contact-main__form{
		position:static;
		top:auto;
		width:100%;
		max-height:none;
		overflow:visible;
	}
}

@media (max-width:680px){
	.gloskin-contact-clinic-grid{
		grid-template-columns:minmax(0,1fr);
	}
}

@media (max-width:480px){
	.gloskin-contact-main{
		padding-block:38px 52px;
	}
	.gloskin-contact-main__form{
		padding:20px 16px;
		border-radius:18px;
	}
	.gloskin-contact-main__clinics .gloskin-ui1-section-heading{
		margin-bottom:18px;
	}
	.gloskin-contact-clinic-grid{
		gap:14px;
	}
	.gloskin-contact-native__form,
	.gloskin-contact-native__grid{
		gap:12px;
	}
	.gloskin-contact-native__message textarea{
		min-height:146px;
	}
}
