/**
 * Da Yang Contact V1
 * Component styles are isolated beneath .dy-contact.
 */

.dy-contact {
	--dy-contact-bg: #f7f5f2;
	--dy-contact-text: #222222;
	--dy-contact-muted: #6f6f6f;
	--dy-contact-line: rgba(34, 34, 34, 0.16);
	--dy-contact-shell: min(1280px, calc(100vw - clamp(40px, 8vw, 128px)));
	--dy-contact-space: clamp(6rem, 11vw, 10rem);
	width: 100%;
	max-width: none;
	margin: 0;
	overflow: clip;
	background: var(--dy-contact-bg);
	color: var(--dy-contact-text);
	font-family: inherit;
}

.dy-contact *,
.dy-contact *::before,
.dy-contact *::after {
	box-sizing: border-box;
}

.dy-contact .dy-contact__shell {
	width: var(--dy-contact-shell);
	margin-inline: auto;
}

.dy-contact .dy-contact__hero,
.dy-contact .dy-contact__invitation,
.dy-contact .dy-contact__details,
.dy-contact .dy-contact__workshop,
.dy-contact .dy-contact__reflection {
	margin: 0;
}

.dy-contact h1,
.dy-contact h2,
.dy-contact p,
.dy-contact dl,
.dy-contact dd {
	margin-top: 0;
}

.dy-contact h1,
.dy-contact h2 {
	color: var(--dy-contact-text);
	font-family: inherit;
	font-weight: 400;
	letter-spacing: -0.04em;
	text-wrap: balance;
}

.dy-contact p,
.dy-contact dt,
.dy-contact dd,
.dy-contact a {
	font-family: inherit;
}

.dy-contact p {
	color: var(--dy-contact-muted);
	font-size: 18px;
	line-height: 1.72;
}

.dy-contact a {
	color: inherit;
}

.dy-contact a:focus-visible {
	border-radius: 1px;
	outline: 2px solid var(--dy-contact-text);
	outline-offset: 5px;
}

.dy-contact [id] {
	scroll-margin-top: 96px;
}

.dy-contact .dy-contact__section-title {
	margin-bottom: 0;
	font-size: clamp(1.75rem, 2.8vw, 2.5rem);
	line-height: 1.08;
}

/* Hero */
.dy-contact .dy-contact__hero {
	display: flex;
	min-height: min(780px, 76svh);
	align-items: center;
	padding-block: clamp(7rem, 13vw, 11rem);
}

.dy-contact .dy-contact__hero-inner {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(280px, 0.65fr);
	align-items: end;
	column-gap: clamp(64px, 11vw, 168px);
}

.dy-contact .dy-contact__hero-title {
	max-width: 850px;
	margin-bottom: 0;
	font-size: clamp(3.5rem, 6vw, 4rem);
	line-height: 0.98;
}

.dy-contact .dy-contact__hero-text {
	max-width: 390px;
	margin: 0 0 5px;
	color: var(--dy-contact-text);
	font-size: clamp(1.2rem, 1.7vw, 1.5rem);
	line-height: 1.45;
}

/* Invitation */
.dy-contact .dy-contact__invitation {
	padding-block: var(--dy-contact-space);
	border-top: 1px solid var(--dy-contact-line);
}

.dy-contact .dy-contact__invitation-inner {
	display: grid;
	grid-template-columns: minmax(220px, 0.5fr) minmax(0, 1.5fr);
	column-gap: clamp(60px, 12vw, 180px);
}

.dy-contact .dy-contact__invitation-text {
	max-width: 760px;
	margin: 0;
	color: var(--dy-contact-text);
	font-size: clamp(1.65rem, 3vw, 2.35rem);
	line-height: 1.4;
	letter-spacing: -0.02em;
}

/* Contact information */
.dy-contact .dy-contact__details {
	padding-block: var(--dy-contact-space);
}

.dy-contact .dy-contact__details-inner {
	display: grid;
	grid-template-columns: minmax(220px, 0.5fr) minmax(0, 1.5fr);
	column-gap: clamp(60px, 12vw, 180px);
}

.dy-contact .dy-contact__list {
	margin: 0;
}

.dy-contact .dy-contact__row {
	display: grid;
	grid-template-columns: minmax(110px, 0.35fr) minmax(0, 1.65fr);
	align-items: baseline;
	gap: 28px;
	padding-block: 28px;
	border-top: 1px solid var(--dy-contact-line);
}

.dy-contact .dy-contact__row:last-child {
	border-bottom: 1px solid var(--dy-contact-line);
}

.dy-contact .dy-contact__label {
	color: var(--dy-contact-muted);
	font-size: 13px;
	font-weight: 500;
	line-height: 1.5;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.dy-contact .dy-contact__value {
	margin: 0;
	color: var(--dy-contact-text);
	font-size: clamp(1.2rem, 2vw, 1.55rem);
	line-height: 1.45;
}

.dy-contact .dy-contact__value a {
	display: inline;
	text-decoration-color: transparent;
	text-decoration-line: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 6px;
	transition: color 250ms ease, text-decoration-color 250ms ease;
}

.dy-contact .dy-contact__value a:hover,
.dy-contact .dy-contact__value a:focus-visible {
	color: var(--dy-contact-muted);
	text-decoration-color: currentColor;
}

/* Workshop */
.dy-contact .dy-contact__workshop {
	padding-block: var(--dy-contact-space);
	border-top: 1px solid var(--dy-contact-line);
}

.dy-contact .dy-contact__workshop-inner {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(300px, 0.7fr);
	align-items: end;
	column-gap: clamp(72px, 13vw, 190px);
}

.dy-contact .dy-contact__workshop-heading {
	display: grid;
	grid-template-columns: minmax(200px, 0.7fr) minmax(180px, 0.55fr);
	align-items: end;
	column-gap: clamp(44px, 7vw, 92px);
}

.dy-contact .dy-contact__place {
	margin: 0;
	color: var(--dy-contact-text);
	font-size: clamp(2.6rem, 5vw, 4rem);
	line-height: 1.02;
	letter-spacing: -0.035em;
}

.dy-contact .dy-contact__workshop-text {
	max-width: 470px;
	margin: 0;
}

/* Final reflection */
.dy-contact .dy-contact__reflection {
	display: flex;
	min-height: min(820px, 78svh);
	align-items: center;
	padding-block: clamp(8rem, 15vw, 13rem);
	border-top: 1px solid var(--dy-contact-line);
}

.dy-contact .dy-contact__reflection-inner {
	max-width: 1120px;
}

.dy-contact .dy-contact__reflection-title {
	margin-bottom: 0;
	font-size: clamp(3.4rem, 6.4vw, 5.4rem);
	line-height: 1.02;
}

/* Progressive enhancement: content remains visible until JS opts in. */
.dy-contact.dy-contact-js .dy-contact-reveal {
	opacity: 0;
	transform: translateY(20px);
	transition: opacity 780ms ease, transform 780ms ease;
}

.dy-contact.dy-contact-js .dy-contact-reveal.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Contact-only fallback for Blocksy's generated page hero. Preferred: disable
 * Page Title in the Contact page settings as documented in the import guide. */
body:has(.dy-contact) .hero-section {
	display: none;
}

@media (max-width: 1024px) {
	.dy-contact {
		--dy-contact-shell: min(900px, calc(100vw - 64px));
		--dy-contact-space: 116px;
	}

	.dy-contact .dy-contact__hero-inner {
		column-gap: 60px;
	}

	.dy-contact .dy-contact__invitation-inner,
	.dy-contact .dy-contact__details-inner {
		grid-template-columns: minmax(190px, 0.45fr) minmax(0, 1.55fr);
		column-gap: 60px;
	}

	.dy-contact .dy-contact__workshop-inner {
		column-gap: 58px;
	}

	.dy-contact .dy-contact__workshop-heading {
		display: block;
	}

	.dy-contact .dy-contact__place {
		margin-top: 42px;
	}
}

@media (max-width: 820px) {
	.dy-contact {
		--dy-contact-shell: calc(100vw - 56px);
		--dy-contact-space: 104px;
	}

	.dy-contact .dy-contact__hero {
		min-height: 70svh;
	}

	.dy-contact .dy-contact__hero-inner,
	.dy-contact .dy-contact__invitation-inner,
	.dy-contact .dy-contact__details-inner,
	.dy-contact .dy-contact__workshop-inner {
		display: block;
	}

	.dy-contact .dy-contact__hero-text {
		margin-top: 44px;
	}

	.dy-contact .dy-contact__section-title {
		margin-bottom: 48px;
	}

	.dy-contact .dy-contact__invitation-text,
	.dy-contact .dy-contact__list,
	.dy-contact .dy-contact__workshop-text {
		max-width: 680px;
	}

	.dy-contact .dy-contact__workshop-text {
		margin-top: 70px;
	}

	.dy-contact .dy-contact__reflection {
		min-height: 70svh;
	}
}

@media (max-width: 640px) {
	.dy-contact {
		--dy-contact-shell: calc(100vw - 44px);
		--dy-contact-space: 82px;
	}

	.dy-contact p {
		font-size: 16px;
	}

	.dy-contact .dy-contact__hero {
		min-height: 70svh;
		padding-block: 88px;
	}

	.dy-contact .dy-contact__hero-title {
		font-size: clamp(3.2rem, 15vw, 4rem);
	}

	.dy-contact .dy-contact__hero-text {
		max-width: 300px;
		font-size: 19px;
	}

	.dy-contact .dy-contact__section-title {
		margin-bottom: 36px;
		font-size: 28px;
	}

	.dy-contact .dy-contact__invitation-text {
		font-size: 26px;
	}

	.dy-contact .dy-contact__row {
		display: block;
		padding-block: 24px;
	}

	.dy-contact .dy-contact__label {
		display: block;
		margin-bottom: 9px;
	}

	.dy-contact .dy-contact__value {
		font-size: 19px;
		overflow-wrap: anywhere;
	}

	.dy-contact .dy-contact__place {
		margin-top: 34px;
		font-size: 48px;
	}

	.dy-contact .dy-contact__workshop-text {
		margin-top: 56px;
	}

	.dy-contact .dy-contact__reflection {
		min-height: 72svh;
		padding-block: 104px;
	}

	.dy-contact .dy-contact__reflection-title {
		font-size: clamp(3rem, 13vw, 3.6rem);
	}

}

@media (prefers-reduced-motion: reduce) {
	.dy-contact .dy-contact__value a,
	.dy-contact.dy-contact-js .dy-contact-reveal {
		transition: none;
	}
}

@media print {
	.dy-contact {
		--dy-contact-shell: 100%;
		--dy-contact-space: 48px;
		background: #ffffff;
	}

	.dy-contact .dy-contact__hero,
	.dy-contact .dy-contact__reflection {
		min-height: 0;
	}

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