/* Bilingual contact page: the underlying artwork contains no baked wording.
 * All visible text is HTML, positioned inside one responsive visual system. */
.sg-contact-visual-page .entry-body {
	margin: 0;
	max-width: none;
	padding: 0;
}

body:has(.sg-contact-visual-page) .page-header,
body.page-id-67 .page-header,
body.page-id-16 .page-header {
	display: none;
}

.sg-contact-visual {
	aspect-ratio: 1728 / 918;
	box-sizing: border-box;
	container-type: inline-size;
	isolation: isolate;
	margin: clamp(24px, 4vw, 64px) auto;
	max-width: 1728px;
	overflow: hidden;
	position: relative;
	width: min(100%, 1728px);
}

.sg-contact-visual__image {
	display: block;
	height: 100%;
	inset: 0;
	object-fit: contain;
	position: absolute;
	width: 100%;
	z-index: -1;
}

.sg-contact-visual__heading,
.sg-contact-card,
.sg-contact-visual__footer {
	box-sizing: border-box;
	left: 50%;
	position: absolute;
	transform: translateX(-50%);
	width: 78%;
}

/* The existing artwork is retained intact for desktop.  Mobile receives a
 * separate reading-order layout instead of compressing the artwork overlay. */
.sg-contact-visual .sg-mobile-layout { display: none; }
.sg-contact-visual .sg-desktop-layout { display: contents; }

.sg-contact-visual__heading {
	top: 14.5%;
	text-align: center;
}

.sg-contact-visual__heading h1,
.sg-contact-visual__heading p,
.sg-contact-card h2,
.sg-contact-card p,
.sg-contact-card a,
.sg-contact-visual__footer {
	margin: 0;
}

.sg-contact-visual-page--ja .sg-contact-visual {
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", "Noto Serif JP", serif;
}

.sg-contact-visual-page--zh .sg-contact-visual {
	font-family: "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
}

.sg-contact-visual__heading h1 {
	color: #052f79;
	font-size: clamp(34px, 5.2cqw, 72px);
	font-weight: 500;
	letter-spacing: .1em;
	line-height: 1.22;
}

.sg-contact-visual__heading p {
	color: #103d86;
	font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
	font-size: clamp(14px, 1.45cqw, 22px);
	font-weight: 600;
	line-height: 1.65;
	margin: 2.8% auto 0;
	max-width: 900px;
}

.sg-contact-visual-page--zh .sg-contact-visual__heading p,
.sg-contact-visual-page--zh .sg-contact-card,
.sg-contact-visual-page--zh .sg-contact-visual__footer {
	font-family: "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
}

.sg-contact-card {
	display: block;
	/* Anchor live copy to the visual's actual white-card artwork, not a
	 * smaller, centred wrapper.  These values map to the 1728 × 918 source. */
	height: 37.04%;
	left: 2.14%;
	top: 44.23%;
	transform: none;
	width: 95.14%;
}

.sg-contact-card > * {
	box-sizing: border-box;
	min-width: 0;
	padding: 0;
	position: absolute;
}

.sg-contact-card address { font-style: normal; }
.sg-contact-card__address { left: 13.56%; top: 17.9%; width: 20%; }
.sg-contact-card__address p { line-height: 1.38; }
.sg-contact-card__phone { left: 47.02%; top: 18%; width: 19%; }
.sg-contact-card__email { left: 74.39%; top: 42.7%; width: 19%; }
.sg-contact-card__copy + .sg-contact-card__copy { margin-top: 12%; }
.sg-contact-card__phone .sg-contact-card__copy + .sg-contact-card__copy { margin-top: 8%; }

.sg-contact-card h2 {
	border: 0 !important;
	box-shadow: none !important;
	color: #103d86;
	font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
	font-size: clamp(17px, 1.85cqw, 26px);
	font-weight: 700;
	line-height: 1.25;
	margin: 0 0 5% !important;
	padding: 0 !important;
}

.sg-contact-card h2::before,
.sg-contact-card h2::after,
.sg-contact-card p::before,
.sg-contact-card p::after {
	display: none !important;
}

.sg-contact-card p,
.sg-contact-card a {
	color: #1a2431;
	display: block;
	font-family: "Yu Gothic", "YuGothic", "Hiragino Kaku Gothic ProN", "Noto Sans JP", Meiryo, sans-serif;
	font-size: clamp(13px, 1.45cqw, 20px);
	font-weight: 600;
	line-height: 1.55;
	overflow-wrap: anywhere;
	text-decoration: none;
}

.sg-contact-visual-page--zh .sg-contact-card h2,
.sg-contact-visual-page--zh .sg-contact-card p,
.sg-contact-visual-page--zh .sg-contact-card a {
	font-family: "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif;
}

.sg-contact-card a:hover,
.sg-contact-card a:focus-visible {
	color: #c9001c;
	text-decoration: underline;
}

.sg-contact-card__email a {
	font-size: clamp(12px, 1.2cqw, 17px);
	white-space: nowrap;
}

.sg-contact-visual__footer {
	color: #fff;
	/* Match the source bar's single-line label at ordinary desktop widths. */
	font-size: clamp(13px, 1.45cqw, 21px);
	font-weight: 600;
	left: 34.5%;
	letter-spacing: .04em;
	line-height: 1.4;
	text-align: center;
	top: 88.5%;
	transform: none;
	width: 35%;
}

@media (max-width: 900px), (max-width: 1366px) and (max-height: 600px) {
	.sg-contact-visual .sg-desktop-layout { display: none; }
	.sg-contact-visual .sg-mobile-layout { display: block; }
	.sg-contact-visual {
		aspect-ratio: auto;
		background: #f4f9ff;
		display: flex;
		flex-direction: column;
		overflow: visible;
		padding: 38px 20px 0;
	}

	.sg-contact-visual__image {
		height: auto;
		inset: auto;
		margin-top: 28px;
		object-fit: contain;
		order: 4;
		position: relative;
	}

	.sg-contact-mobile {
		box-sizing: border-box;
		color: #1a2431;
		margin: 0 auto;
		max-width: 680px;
		padding: 28px 20px 24px;
	}
	.sg-contact-mobile__heading { color: #052f79; text-align: center; }
	.sg-contact-mobile__heading h1 {
		font-family: "Yu Mincho", YuMincho, "Hiragino Mincho ProN", serif;
		font-size: clamp(32px, 10vw, 44px);
		font-weight: 500;
		line-height: 1.22;
		margin: 0;
	}
	.sg-contact-mobile__heading p { font-size: 15px; line-height: 1.8; margin: 14px 0 24px; }
	.sg-contact-mobile__card {
		background: #fff;
		border: 1px solid #b9d3f4;
		border-radius: 18px;
		box-shadow: 0 10px 28px rgba(37, 92, 153, .08);
		overflow: hidden;
	}
	.sg-contact-mobile__card > * { border-top: 1px solid #c6d8ef; margin: 0; padding: 20px; }
	.sg-contact-mobile__card > :first-child { border-top: 0; }
	.sg-contact-mobile__card address { font-style: normal; }
	.sg-contact-mobile__card h2 { color: #103d86; font-size: 18px; line-height: 1.3; margin: 0 0 10px; }
	.sg-contact-mobile__card p,
	.sg-contact-mobile__card a { color: #1a2431; display: block; font-size: 16px; line-height: 1.65; margin: 0; overflow-wrap: anywhere; }
	.sg-contact-mobile__card a { text-decoration: none; }
	.sg-contact-mobile__footer { background: #073c97; border-radius: 16px; color: #fff; font-size: 16px; font-weight: 700; line-height: 1.5; margin: 20px 0 0; padding: 18px; text-align: center; }
	.sg-contact-visual-page--zh .sg-contact-mobile,
	.sg-contact-visual-page--zh .sg-contact-mobile__heading h1 { font-family: "Source Han Sans SC", "Noto Sans SC", "Microsoft YaHei", sans-serif; }

	.sg-contact-visual__heading,
	.sg-contact-card,
	.sg-contact-visual__footer {
		left: auto;
		position: relative;
		top: auto;
		transform: none;
		width: min(100%, 680px);
	}

	.sg-contact-visual__heading { margin: 0 auto 24px; order: 1; }
	.sg-contact-visual__heading p { margin-top: 14px; }

	.sg-contact-card {
		background: #fff;
		border: 1px solid #b9d3f4;
		border-radius: 18px;
		box-shadow: 0 12px 24px rgba(24, 74, 132, .10);
		display: block;
		height: auto;
		margin: 0 auto;
		order: 2;
		padding: 0 24px;
	}

	.sg-contact-visual,
	.sg-contact-visual__heading,
	.sg-contact-card,
	.sg-contact-card > * {
		min-width: 0;
		max-width: 100%;
	}

	.sg-contact-card > *,
	.sg-contact-card__phone,
	.sg-contact-card__email {
		border-top: 1px solid #c6d8ef;
		left: auto;
		position: relative;
		padding: 24px 0;
		top: auto;
		width: auto;
	}
	.sg-contact-card > :first-child { border-top: 0; }
	.sg-contact-card__copy + .sg-contact-card__copy { margin-top: 20px; }

	.sg-contact-visual__footer {
		background: #073c97;
		border-radius: 16px;
		margin: 22px auto 0;
		order: 3;
		padding: 16px 20px;
		text-align: center;
	}

	/* Mobile contact: the desktop artwork's lower decorative panel does not
	 * translate cleanly to a narrow layout. Keep the live contact card only. */
	.sg-contact-visual__footer,
	.sg-contact-visual__image {
		display: none;
	}

	.sg-contact-visual {
		padding-bottom: 24px;
	}
}

@media (max-width: 560px) {
	.sg-contact-visual { margin: 16px auto; padding-left: 16px; padding-right: 16px; }
	.sg-contact-visual__heading h1 { font-size: clamp(32px, 10vw, 44px); }
	.sg-contact-card p,
	.sg-contact-card a { font-size: 15px; }
}
