:root{
	--contact-text:#151515;
	--contact-muted:#666666;
	--contact-line:rgba(21,21,21,.12);
	--contact-line-strong:rgba(21,21,21,.18);
	--contact-surface:rgba(252,252,249,.82);
	--contact-surface-strong:rgba(255,255,255,.9);
	--contact-font-serif:ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
	--contact-font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
}

html,
body{
	margin:0;
	padding:0;
	background:#f3f3f0;
	color:var(--contact-text);
	font-family:var(--contact-font-serif);
}

body{
	min-height:100vh;
}

.contact-shell,
.contact-wrap{
	min-height:100vh;
}

.contact-wrap{
	position:relative;
	overflow:hidden;
	background:rgba(252,252,249,.22);
}

.contact-bg-media,
.contact-bg-overlay{
	position:fixed;
	top:0;
	left:50%;
	width:100vw;
	height:100vh;
	transform:translateX(-50%);
	z-index:0;
}

.contact-bg-media video{
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:center center;
	display:block;
}

.contact-bg-overlay{
	background:
		linear-gradient(180deg, rgba(245,245,242,.78), rgba(245,245,242,.68)),
		radial-gradient(circle at 50% 10%, rgba(255,255,255,.4), transparent 26%);
	backdrop-filter:blur(2px);
}

.contact-page{
	position:relative;
	z-index:1;
	max-width:1320px;
	margin:0 auto;
	padding:1rem 0 0;
}

.contact-kicker{
	display:inline-block;
	font-family:var(--contact-font-mono);
	font-size:.76rem;
	font-weight:700;
	letter-spacing:.16em;
	text-transform:uppercase;
	color:#5f5f5f;
}

.contact-hero{
	max-width:54rem;
	margin:0 auto;
	padding:2.6rem 0 3.2rem;
	text-align:center;
}

.contact-hero-intro{
	animation:contactHeroIntro 1.05s cubic-bezier(.22,1,.36,1) both;
}

.contact-hero h1{
	margin:1rem 0 0;
	font-family:var(--contact-font-serif);
	font-size:clamp(3.4rem, 6vw, 5.8rem);
	line-height:.94;
	letter-spacing:-.08em;
	font-weight:600;
}

.contact-hero p{
	max-width:42rem;
	margin:1.35rem auto 0;
	font-size:1.08rem;
	line-height:1.85;
	color:var(--contact-muted);
}

.contact-layout{
	display:grid;
	grid-template-columns:minmax(0, 1.05fr) minmax(360px, .85fr);
	gap:1.75rem;
	align-items:start;
	padding-bottom:2rem;
}

.contact-form-card,
.contact-info-card,
.contact-location-card{
	position:relative;
	border-radius:1.8rem;
	background:linear-gradient(145deg, rgba(255,255,255,.82), rgba(239,239,235,.78));
	border:1px solid rgba(255,255,255,.72);
	box-shadow:
		0 28px 50px rgba(21,21,21,.08),
		inset 1px 1px 0 rgba(255,255,255,.94),
		inset -12px -14px 24px rgba(21,21,21,.05);
	transform-style:preserve-3d;
	transition:box-shadow .35s ease, transform .35s ease;
	overflow:hidden;
}

.contact-card-glow{
	position:absolute;
	inset:0;
	border-radius:inherit;
	opacity:0;
	transition:opacity .3s ease;
	pointer-events:none;
	mix-blend-mode:screen;
}

.contact-card-depth{
	position:absolute;
	inset:auto 8% -30px 8%;
	height:70px;
	border-radius:50%;
	background:radial-gradient(circle, rgba(21,21,21,.18), rgba(21,21,21,0) 70%);
	filter:blur(16px);
	opacity:.55;
	pointer-events:none;
}

.contact-card-content{
	position:relative;
	z-index:1;
	padding:1.7rem;
	transform:translateZ(26px);
	transition:transform .35s ease;
}

.contact-form{
	display:grid;
	gap:1rem;
}

.contact-field label{
	display:block;
	margin-bottom:.45rem;
	font-family:var(--contact-font-mono);
	font-size:.76rem;
	font-weight:700;
	letter-spacing:.14em;
	text-transform:uppercase;
	color:#626262;
}

.contact-field input,
.contact-field textarea{
	width:100%;
	padding:1rem 1.05rem;
	border-radius:1rem;
	border:1px solid rgba(21,21,21,.08);
	background:rgba(255,255,255,.86);
	font-size:1rem;
	line-height:1.5;
	color:var(--contact-text);
	box-shadow:
		0 8px 16px rgba(21,21,21,.04),
		inset 1px 1px 0 rgba(255,255,255,.75);
}

.contact-field textarea{
	resize:vertical;
	min-height:140px;
}

.contact-check{
	display:flex;
	align-items:center;
	gap:.75rem;
	font-size:.95rem;
	color:var(--contact-muted);
}

.contact-submit{
	padding:1rem 1.2rem;
	border-radius:1rem;
	border:none;
	background:#181818;
	color:#ffffff;
	font-family:var(--contact-font-mono);
	font-size:1rem;
	font-weight:700;
	box-shadow:0 14px 24px rgba(0,0,0,.12);
}

.contact-direct{
	margin-top:1.8rem;
	padding-top:1.5rem;
	border-top:1px solid var(--contact-line);
}

.contact-direct h2,
.contact-info-card h2{
	margin:0 0 1rem;
	font-family:var(--contact-font-serif);
	font-size:clamp(1.8rem, 3vw, 2.5rem);
	line-height:1.02;
	letter-spacing:-.05em;
	font-weight:600;
}

.contact-direct-list{
	display:grid;
	grid-template-columns:1fr;
	gap:.9rem;
}

.contact-direct-item{
	display:grid;
	grid-template-columns:52px minmax(0, 1fr);
	gap:.9rem;
	align-items:center;
}

.contact-direct-icon{
	display:flex;
	align-items:center;
	justify-content:center;
	width:52px;
	height:52px;
	border-radius:50%;
	background:rgba(255,255,255,.86);
	border:1px solid rgba(21,21,21,.08);
	font-family:var(--contact-font-mono);
	font-weight:700;
}

.contact-direct-label{
	font-size:.82rem;
	font-weight:700;
	letter-spacing:.08em;
	text-transform:uppercase;
	color:#6a6a6a;
}

.contact-direct-value{
	display:inline-block;
	margin-top:.2rem;
	color:var(--contact-text);
	text-decoration:none;
	line-height:1.55;
}

.contact-side{
	display:grid;
	gap:1rem;
}

.contact-benefits{
	display:grid;
	gap:.9rem;
	padding:0;
	margin:0;
	list-style:none;
}

.contact-benefits li{
	position:relative;
	padding-left:1.8rem;
	line-height:1.7;
	color:var(--contact-muted);
}

.contact-benefits li::before{
	content:"●";
	position:absolute;
	left:0;
	top:0;
	color:#181818;
	font-size:.85rem;
}

.contact-locations{
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:1rem;
}

.contact-location-pin{
	font-size:1rem;
	line-height:1;
	color:#111111;
}

.contact-location-card h3{
	margin:.55rem 0 .5rem;
	font-family:var(--contact-font-serif);
	font-size:1.65rem;
	line-height:1.02;
	letter-spacing:-.04em;
	font-weight:600;
}

.contact-location-card p{
	margin:0;
	line-height:1.75;
	color:var(--contact-muted);
}

.contact-reveal{
	opacity:0;
	transform:translateY(40px);
	transition:
		opacity .9s cubic-bezier(.22,1,.36,1),
		transform .9s cubic-bezier(.22,1,.36,1);
}

.contact-reveal.is-visible{
	opacity:1;
	transform:none;
}

.contact-wrap .site-footer{
	margin-top:1rem;
	padding:1.4rem 0 2rem;
	border-top:1px solid rgba(16,16,16,.08);
}

.contact-wrap .site-footer__inner{
	color:var(--contact-muted);
}

.contact-wrap .site-footer__inner strong{
	color:var(--contact-text);
}

@keyframes contactHeroIntro{
	0%{
		opacity:0;
		transform:translateY(34px);
		filter:blur(10px);
	}
	100%{
		opacity:1;
		transform:translateY(0);
		filter:blur(0);
	}
}

@media (prefers-reduced-motion: reduce){
	.contact-reveal,
	.contact-form-card,
	.contact-info-card,
	.contact-location-card,
	.contact-card-content{
		transition:none;
	}

	.contact-hero-intro{
		animation:none;
	}

	.contact-reveal{
		opacity:1;
		transform:none;
	}
}

@media (max-width:1199px){
	.contact-layout{
		grid-template-columns:1fr;
	}

	.contact-locations{
		grid-template-columns:1fr 1fr;
	}
}

@media (max-width:767px){
	.contact-page{
		padding-top:.8rem;
	}

	.contact-hero{
		padding:2rem 0 2.5rem;
	}

	.contact-hero h1{
		font-size:clamp(3rem, 14vw, 4.8rem);
	}

	.contact-card-content{
		padding:1.25rem;
	}

	.contact-locations{
		grid-template-columns:1fr;
	}
}
