/* Canonical global Footer presentation owner.
 * Footer markup renders on every Gloskin shell route; therefore its surface,
 * ambient ornaments, primary information and consultation CTA must never be
 * coupled to a route-scoped editorial bundle.
 */

/* Global page-to-footer surface handoff. Footer surface and transition consume
 * one component token so contextual footer themes cannot drift at the seam. */
.gloskin-ui1-footer {
	--gloskin-footer-bg: var(--gloskin-bg);
	position: relative;
	isolation: isolate;
	padding-bottom: 80px;
	background-color: var(--gloskin-footer-bg);
}

.gloskin-ui1-footer::before {
	position: absolute;
	z-index: 1;
	top: -55px;
	inset-inline: 0;
	height: 100px;
	background: linear-gradient(
		0deg,
		var(--gloskin-footer-bg) 50%,
		transparent 100%
	);
	content: "";
	pointer-events: none;
}

/* Ambient footer geometry — decorative only. One finite composition is
 * selected per page load; CSS remains the sole motion/geometry owner afterward. */
.gloskin-ui1-footer__ornaments {
	--footer-a-top:8%;
	--footer-a-right:-5%;
	--footer-a-width:min(34vw,520px);
	--footer-a-opacity:.62;
	--footer-a-duration:31s;
	--footer-a-delay:-7s;
	--footer-b-top:47%;
	--footer-b-left:-8%;
	--footer-b-width:min(30vw,460px);
	--footer-b-opacity:.52;
	--footer-b-duration:43s;
	--footer-b-delay:-19s;
	--footer-c-right:14%;
	--footer-c-bottom:-7%;
	--footer-c-width:min(24vw,360px);
	--footer-c-opacity:.44;
	--footer-c-duration:37s;
	--footer-c-delay:-11s;
	position:absolute;
	z-index:0;
	inset:0;
	overflow:hidden;
	color:color-mix(in srgb,var(--gloskin-text) 14%,transparent);
	pointer-events:none;
}
.gloskin-ui1-footer__ornaments[data-footer-ornament-variant="2"]{--footer-a-top:14%;--footer-a-right:-9%;--footer-a-width:min(31vw,480px);--footer-a-opacity:.56;--footer-a-duration:35s;--footer-a-delay:-13s;--footer-b-top:42%;--footer-b-left:-5%;--footer-b-width:min(33vw,500px);--footer-b-opacity:.58;--footer-b-duration:39s;--footer-b-delay:-9s;--footer-c-right:9%;--footer-c-bottom:-4%;--footer-c-width:min(22vw,330px);--footer-c-opacity:.4;--footer-c-duration:41s;--footer-c-delay:-17s}
.gloskin-ui1-footer__ornaments[data-footer-ornament-variant="3"]{--footer-a-top:5%;--footer-a-right:3%;--footer-a-width:min(29vw,450px);--footer-a-opacity:.52;--footer-a-duration:37s;--footer-a-delay:-18s;--footer-b-top:52%;--footer-b-left:-12%;--footer-b-width:min(34vw,520px);--footer-b-opacity:.6;--footer-b-duration:47s;--footer-b-delay:-23s;--footer-c-right:20%;--footer-c-bottom:-10%;--footer-c-width:min(26vw,390px);--footer-c-opacity:.46;--footer-c-duration:33s;--footer-c-delay:-5s}
.gloskin-ui1-footer__ornaments[data-footer-ornament-variant="4"]{--footer-a-top:19%;--footer-a-right:-4%;--footer-a-width:min(36vw,540px);--footer-a-opacity:.6;--footer-a-duration:29s;--footer-a-delay:-4s;--footer-b-top:38%;--footer-b-left:-10%;--footer-b-width:min(28vw,430px);--footer-b-opacity:.48;--footer-b-duration:45s;--footer-b-delay:-27s;--footer-c-right:6%;--footer-c-bottom:2%;--footer-c-width:min(21vw,315px);--footer-c-opacity:.5;--footer-c-duration:39s;--footer-c-delay:-15s}
.gloskin-ui1-footer__ornaments[data-footer-ornament-variant="5"]{--footer-a-top:10%;--footer-a-right:-13%;--footer-a-width:min(38vw,570px);--footer-a-opacity:.64;--footer-a-duration:33s;--footer-a-delay:-21s;--footer-b-top:55%;--footer-b-left:-3%;--footer-b-width:min(27vw,410px);--footer-b-opacity:.46;--footer-b-duration:41s;--footer-b-delay:-7s;--footer-c-right:25%;--footer-c-bottom:-5%;--footer-c-width:min(25vw,375px);--footer-c-opacity:.48;--footer-c-duration:35s;--footer-c-delay:-19s}
.gloskin-ui1-footer > .gloskin-ui1-footer__cta-section,
.gloskin-ui1-footer > .gloskin-ui1-footer__grid,
.gloskin-ui1-footer > .gloskin-ui1-footer__bottom {
	position:relative;
	z-index:2;
}
.gloskin-ui1-footer__ornament {
	position:absolute;
	display:block;
	max-width:none;
	height:auto;
	transform-origin:center;
}
.gloskin-ui1-footer__ornament--a {
	top:var(--footer-a-top);
	right:var(--footer-a-right);
	width:var(--footer-a-width);
	opacity:var(--footer-a-opacity);
	animation:gloskin-footer-orbit-drift-a var(--footer-a-duration) ease-in-out var(--footer-a-delay) infinite alternate;
}
.gloskin-ui1-footer__ornament--b {
	top:var(--footer-b-top);
	left:var(--footer-b-left);
	width:var(--footer-b-width);
	opacity:var(--footer-b-opacity);
	animation:gloskin-footer-orbit-drift-b var(--footer-b-duration) ease-in-out var(--footer-b-delay) infinite alternate-reverse;
}
.gloskin-ui1-footer__ornament--c {
	right:var(--footer-c-right);
	bottom:var(--footer-c-bottom);
	width:var(--footer-c-width);
	opacity:var(--footer-c-opacity);
	animation:gloskin-footer-orbit-breathe var(--footer-c-duration) ease-in-out var(--footer-c-delay) infinite alternate;
}
@keyframes gloskin-footer-orbit-drift-a {
	0% { transform:translate3d(0,0,0) rotate(0deg); }
	50% { transform:translate3d(-10px,14px,0) rotate(2deg); }
	100% { transform:translate3d(8px,-8px,0) rotate(-1.4deg); }
}
@keyframes gloskin-footer-orbit-drift-b {
	0% { transform:translate3d(0,0,0) rotate(-2deg); }
	52% { transform:translate3d(12px,-9px,0) rotate(2.5deg); }
	100% { transform:translate3d(-7px,11px,0) rotate(4deg); }
}
@keyframes gloskin-footer-orbit-breathe {
	0% { transform:translate3d(0,0,0) rotate(0deg); }
	48% { transform:translate3d(-6px,-8px,0) rotate(-2deg); }
	100% { transform:translate3d(7px,5px,0) rotate(1.5deg); }
}
@media (max-width:760px) {
	.gloskin-ui1-footer__ornaments{--footer-a-width:min(62vw,330px);--footer-a-opacity:.5;--footer-b-width:min(56vw,300px);--footer-b-opacity:.4;color:color-mix(in srgb,var(--gloskin-text) 11%,transparent)}
	.gloskin-ui1-footer__ornaments[data-footer-ornament-variant="1"]{--footer-a-top:11%;--footer-a-right:-20%;--footer-b-top:57%;--footer-b-left:-25%}
	.gloskin-ui1-footer__ornaments[data-footer-ornament-variant="2"]{--footer-a-top:16%;--footer-a-right:-24%;--footer-b-top:51%;--footer-b-left:-18%;--footer-a-opacity:.46;--footer-b-opacity:.44}
	.gloskin-ui1-footer__ornaments[data-footer-ornament-variant="3"]{--footer-a-top:7%;--footer-a-right:-15%;--footer-b-top:61%;--footer-b-left:-29%;--footer-a-opacity:.44;--footer-b-opacity:.46}
	.gloskin-ui1-footer__ornaments[data-footer-ornament-variant="4"]{--footer-a-top:20%;--footer-a-right:-18%;--footer-b-top:48%;--footer-b-left:-26%;--footer-a-opacity:.52;--footer-b-opacity:.38}
	.gloskin-ui1-footer__ornaments[data-footer-ornament-variant="5"]{--footer-a-top:9%;--footer-a-right:-27%;--footer-b-top:64%;--footer-b-left:-16%;--footer-a-opacity:.54;--footer-b-opacity:.36}
	.gloskin-ui1-footer__ornament--c{display:none}
}
@media (prefers-reduced-motion:reduce) {
	.gloskin-ui1-footer__ornament {
		animation:none;
		transform:none;
	}
}

/* Primary clinic information — one semantic block beneath the brand mark. */
.gloskin-ui1-footer__primary-info {
	display: grid;
	width: min(100%, 440px);
	min-width: 0;
	overflow: visible;
	gap: 18px;
	border: 0;
	border-radius: 0;
	background: transparent;
}
.gloskin-ui1-footer__info-item {
	display: grid;
	grid-template-columns: 28px minmax(0, 1fr);
	align-items: start;
	gap: 12px;
	min-width: 0;
	padding: 0;
}
.gloskin-ui1-footer__info-item + .gloskin-ui1-footer__info-item {
	border-top: 0;
}
.gloskin-ui1-footer__info-icon {
	display: grid;
	width: 28px;
	height: 28px;
	margin-top: 1px;
	border-radius: 0;
	background: transparent;
	color: var(--gloskin-accent-readable);
	place-items: center;
}
.gloskin-ui1-footer__info-icon svg {
	display: block;
	width: 20px;
	height: 20px;
}
.gloskin-ui1-footer__info-content {
	display: grid;
	gap: 5px;
	min-width: 0;
}
.gloskin-ui1-footer__info-label {
	color: var(--gloskin-text);
	font-family: var(--gloskin-font-ui);
	font-size: .7rem;
	font-weight: 800;
	letter-spacing: .1em;
	line-height: 1.35;
	text-transform: uppercase;
}
.gloskin-ui1-footer__info-value {
	max-width: 38ch;
	color: var(--gloskin-muted);
	font-family: var(--gloskin-font-body);
	font-size: .9rem;
	line-height: 1.6;
	overflow-wrap: anywhere;
}
@media (max-width: 600px) {
	.gloskin-ui1-footer__primary-info { width: 100%; }
	.gloskin-ui1-footer__info-item { grid-template-columns: 26px minmax(0, 1fr); gap: 10px; padding: 0; }
	.gloskin-ui1-footer__info-icon { width: 26px; height: 26px; }
	.gloskin-ui1-footer__info-value { max-width: none; }
}

/* Responsive Footer information architecture. Footer CSS loads after the
 * production shell and is the final owner of the mobile Footer composition. */
@media (max-width:760px) {
	.gloskin-ui1-footer .gloskin-ui1-footer__grid {
		grid-template-columns:repeat(2,minmax(0,1fr));
		column-gap:clamp(22px,8vw,42px);
		row-gap:0;
		padding-block:clamp(52px,12vw,68px);
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__brand {
		grid-column:1 / -1;
		justify-items:center;
		margin-bottom:clamp(28px,8vw,40px);
		text-align:center;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__brand .gloskin-ui1-brand--footer {
		justify-self:center;
		margin-inline:auto;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__primary-info {
		width:min(100%,390px);
		margin-inline:auto;
		text-align:left;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__info-item {
		width:100%;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__grid>div.gloskin-ui1-footer__nav-group {
		min-width:0;
		padding:24px 0 28px;
		border-top:1px solid color-mix(in srgb,var(--gloskin-border) 78%,transparent);
		border-left:0;
		text-align:center;
	}
	.gloskin-ui1-footer__nav-group h3 {
		margin:0 0 15px;
		text-align:center;
	}
	.gloskin-ui1-footer__nav-group ul {
		justify-items:center;
		gap:9px;
	}
	.gloskin-ui1-footer__nav-group a {
		display:inline-flex;
		min-height:30px;
		align-items:center;
		justify-content:center;
		text-align:center;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__grid>div.gloskin-ui1-footer__clinic-group {
		grid-column:1 / -1;
		padding:26px 0 0;
		border-top:1px solid color-mix(in srgb,var(--gloskin-border) 78%,transparent);
		border-left:0;
		text-align:center;
	}
	.gloskin-ui1-footer__clinic-group h3 {
		margin:0 0 18px;
		text-align:center;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__clinics {
		grid-template-columns:repeat(2,minmax(0,1fr));
		width:min(100%,390px);
		margin-inline:auto;
		column-gap:clamp(18px,7vw,34px);
		row-gap:12px;
		text-align:left;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__clinics li,
	.gloskin-ui1-footer .gloskin-ui1-footer__clinics a {
		min-width:0;
		white-space:normal;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__clinic-link {
		width:100%;
		justify-content:flex-start;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__bottom {
		align-items:center;
		text-align:center;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__copyright {
		width:100%;
		text-align:center;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__legal {
		width:100%;
		margin-left:0;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__legal-list {
		width:100%;
		justify-content:center;
	}
}
@media (max-width:480px) {
	.gloskin-ui1-footer .gloskin-ui1-footer__legal-list {
		display:grid;
		grid-template-columns:repeat(2,minmax(0,1fr));
		width:min(100%,390px);
		margin-inline:auto;
		justify-content:center;
		justify-items:center;
		gap:4px clamp(14px,5vw,24px);
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__legal-list a {
		min-height:42px;
		align-items:center;
		justify-content:center;
		padding:8px 0;
		text-align:center;
	}
}
@media (max-width:359px) {
	.gloskin-ui1-footer .gloskin-ui1-footer__legal-list {
		grid-template-columns:repeat(2,minmax(0,1fr));
		gap:2px 10px;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__legal-list a {
		font-size:.78rem;
		line-height:1.35;
	}
}
@media (max-width:380px) {
	.gloskin-ui1-footer .gloskin-ui1-footer__grid {
		column-gap:18px;
	}
	.gloskin-ui1-footer__nav-group h3 {
		font-size:.78rem;
		letter-spacing:.07em;
	}
	.gloskin-ui1-footer__nav-group a {
		font-size:.9rem;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__clinics {
		column-gap:14px;
	}
	.gloskin-ui1-footer .gloskin-ui1-footer__clinic-link {
		gap:7px;
		font-size:.82rem;
	}
}

/* Bounded consultation CTA — exact reference composition with production routes/data. */
.gloskin-ui1-footer__cta-section{padding:88px 0 88px;background:transparent}
.gloskin-ui1-footer__cta{position:relative;isolation:isolate;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.25fr) auto;align-items:center;gap:36px;padding:50px 54px;border-radius:var(--gloskin-radius-lg);background:#171316;color:#fff;box-shadow:0 30px 75px rgba(23,19,22,.12)}
.gloskin-ui1-footer__cta-ornament{position:absolute;z-index:0;width:420px;aspect-ratio:1;border:1px solid rgba(255,255,255,.08);border-radius:50%;background:transparent;pointer-events:none}
.gloskin-ui1-footer__cta-ornament:first-child{top:-155px;right:-130px}
.gloskin-ui1-footer__cta-ornament--b{right:25%;bottom:-220px;width:290px;border-color:rgba(227,6,32,.24)}
.gloskin-ui1-footer__cta-copy{position:relative;z-index:1;min-width:0}
.gloskin-ui1-footer__cta .gloskin-ui1-eyebrow{margin:0;color:#c9b6bb;font-family:var(--gloskin-font-ui);font-size:10px;font-weight:800;letter-spacing:.18em;text-transform:uppercase}
.gloskin-ui1 .gloskin-ui1-footer__cta-heading{max-width:620px;margin:9px 0 10px;color:#fff;font-family:var(--gloskin-font-heading);font-size:clamp(38px,4.2vw,58px);font-weight:500;line-height:.98;letter-spacing:-.035em;text-wrap:balance}
.gloskin-ui1-footer__cta-body{max-width:600px;margin:0;color:#a99ea2;font-family:var(--gloskin-font-body);font-size:11px;line-height:1.7}
.gloskin-ui1-footer__cta-actions{position:relative;z-index:1;display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:14px}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button{position:relative;display:inline-flex;width:auto;min-width:184px;min-height:58px;align-items:center;justify-content:center;gap:11px;overflow:hidden;padding:0 22px 0 12px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:transparent;color:#fff;font-family:var(--gloskin-font-ui);font-size:12px;font-weight:800;line-height:1;letter-spacing:.055em;text-transform:uppercase;box-shadow:none;text-decoration:none;isolation:isolate;transition:transform 300ms cubic-bezier(.16,1,.3,1),background-color 300ms cubic-bezier(.16,1,.3,1),border-color 300ms cubic-bezier(.16,1,.3,1),box-shadow 300ms cubic-bezier(.16,1,.3,1),filter 300ms cubic-bezier(.16,1,.3,1)}
.gloskin-ui1-footer__cta-icon{position:relative;z-index:2;display:grid;width:34px;height:34px;flex:0 0 34px;place-items:center;border:1px solid rgba(255,255,255,.18);border-radius:50%;background:rgba(255,255,255,.10);box-shadow:inset 0 1px 0 rgba(255,255,255,.18);transition:transform 300ms cubic-bezier(.16,1,.3,1),background-color 300ms cubic-bezier(.16,1,.3,1)}
.gloskin-ui1-footer__cta-icon svg{display:block;width:18px;height:18px}
.gloskin-ui1-footer__cta-label{position:relative;z-index:2;white-space:nowrap}
.gloskin-ui1-footer__cta-arrow{position:relative;z-index:2;display:grid;width:16px;height:16px;flex:0 0 16px;place-items:center;opacity:.78;transition:transform 300ms cubic-bezier(.16,1,.3,1),opacity 300ms ease}
.gloskin-ui1-footer__cta-arrow svg{display:block;width:16px;height:16px}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button:hover,.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button:focus-visible{color:#fff;text-decoration:none;transform:translateY(-2px)}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button:hover .gloskin-ui1-footer__cta-icon,.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button:focus-visible .gloskin-ui1-footer__cta-icon{transform:scale(1.055);background:rgba(255,255,255,.15)}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button:hover .gloskin-ui1-footer__cta-arrow,.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button:focus-visible .gloskin-ui1-footer__cta-arrow{opacity:1;transform:translateX(3px)}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button:focus-visible{outline:2px solid #fff;outline-offset:4px}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button:active{transform:translateY(0) scale(.985);transition-duration:120ms}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button--primary{border-color:color-mix(in srgb,var(--gloskin-accent) 76%,#fff);background:var(--gloskin-action-gradient);color:#fff;box-shadow:0 12px 30px color-mix(in srgb,var(--gloskin-accent) 22%,transparent),inset 0 1px 0 rgba(255,255,255,.24)}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button--primary::before{position:absolute;z-index:1;top:0;right:12%;left:12%;height:46%;border-radius:999px;background:linear-gradient(to bottom,rgba(255,255,255,.22),rgba(255,255,255,0));content:"";pointer-events:none;opacity:.72;transform:translateY(-18%);transition:opacity 300ms cubic-bezier(.16,1,.3,1),transform 300ms cubic-bezier(.16,1,.3,1)}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button--primary:hover,.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button--primary:focus-visible{border-color:color-mix(in srgb,var(--gloskin-accent-strong) 72%,#fff);background:var(--gloskin-action-gradient);box-shadow:0 17px 38px color-mix(in srgb,var(--gloskin-accent) 29%,transparent),inset 0 1px 0 rgba(255,255,255,.3);filter:brightness(1.02)}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button--primary:hover::before,.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button--primary:focus-visible::before{opacity:.9;transform:translateY(-5%)}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button--secondary{border-color:rgba(255,255,255,.32);background:rgba(255,255,255,.025);color:#fff;box-shadow:inset 0 1px 0 rgba(255,255,255,.07)}
.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button--secondary:hover,.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button--secondary:focus-visible{border-color:rgba(255,255,255,.52);background:rgba(255,255,255,.085);box-shadow:inset 0 1px 0 rgba(255,255,255,.12)}
@media (max-width:820px){.gloskin-ui1-footer__cta{grid-template-columns:1fr;padding:39px 32px}.gloskin-ui1-footer__cta-actions{justify-content:flex-start}}
@media (max-width:600px){.gloskin-ui1-footer__cta{padding:32px 23px;border-radius:var(--gloskin-radius-lg)}.gloskin-ui1 .gloskin-ui1-footer__cta-heading{font-size:40px}.gloskin-ui1-footer__cta-actions{align-items:stretch;flex-direction:column;gap:11px}.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button{width:100%;min-width:0;min-height:54px;justify-content:flex-start;padding:0 16px 0 10px;font-size:11px}.gloskin-ui1-footer__cta-icon{width:32px;height:32px;flex-basis:32px}.gloskin-ui1-footer__cta-arrow{margin-left:auto}}
@media (max-width:350px){.gloskin-ui1 .gloskin-ui1-footer__cta-heading{font-size:36px}.gloskin-ui1 .gloskin-ui1-footer__cta .gloskin-ui1-footer__cta-button{font-size:10.5px;letter-spacing:.045em}}
