@font-face {
	font-family: 'Plus Jakarta Sans';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/plus-jakarta-sans-400.ttf') format('truetype');
}
@font-face {
	font-family: 'Plus Jakarta Sans';
	font-style: normal;
	font-weight: 500;
	font-display: swap;
	src: url('../fonts/plus-jakarta-sans-500.ttf') format('truetype');
}
@font-face {
	font-family: 'Plus Jakarta Sans';
	font-style: normal;
	font-weight: 600;
	font-display: swap;
	src: url('../fonts/plus-jakarta-sans-600.ttf') format('truetype');
}
@font-face {
	font-family: 'Plus Jakarta Sans';
	font-style: normal;
	font-weight: 700;
	font-display: swap;
	src: url('../fonts/plus-jakarta-sans-700.ttf') format('truetype');
}
@font-face {
	font-family: 'Plus Jakarta Sans';
	font-style: normal;
	font-weight: 800;
	font-display: swap;
	src: url('../fonts/plus-jakarta-sans-800.ttf') format('truetype');
}

/* Typography, spacing and container widths share the same rem scale. */
:root {
	font-size: 16px;
	/* The supplied brochure defines the slate, navy and teal-blue palette. */
	--brand-blue: #1f5598;
	--brand-soft: #a8c3e4;
	--page: #e3e8ef;
	--surface: #f4f6fa;
	--surface-strong: #e8edf4;
	--text: #4d5971;
	--muted: #59657b;
	--line: #cbd3df;
	/* Use the deep blue endpoint of the supplied logo gradient for UI accents. */
	--blue: var(--brand-blue);
	--blue-hover: #234685;
	--teal: #006f67;
	/* Foreground accents and filled surfaces adapt separately to each theme. */
	--action: var(--brand-blue);
	--action-start: #008474;
	--action-hover: #234685;
	--cta-start: #234685;
	--cta-end: #176e75;
	--cta-eyebrow: #edf3fb;
	--cta-copy: #edf3fb;
	--cta-arrow-line: rgb(255 255 255 / 42%);
	--cta-orbit-line: rgb(255 255 255 / 12%);
	--navy: #234685;
	--photo-matte: radial-gradient(ellipse at 15% 15%, rgb(0 180 159 / 13%), transparent 65%), linear-gradient(145deg, #f9fbfd, #d9e3ef);
	--input: #ffffff;
	--header: rgb(244 246 250 / 94%);
	--shadow: 0 1.5rem 5rem rgb(35 70 133 / 12%);
	--container: 77rem;
	--gutter: 1.4rem;
	--header-expanded-height: 5.1rem;
	--header-compact-height: 4rem;
	--header-logo-expanded: 10.75rem;
	--header-logo-compact: 8.5rem;
	--header-height: var(--header-expanded-height);
	--header-logo-width: var(--header-logo-expanded);
	--header-offset: calc(var(--header-height) + 1.25rem);
	color-scheme: light;
}
:root[data-header='compact'] {
	--header-height: var(--header-compact-height);
	--header-logo-width: var(--header-logo-compact);
}
:root[data-size='small'] {
	font-size: 14px;
}
:root[data-size='large'] {
	font-size: 18.5px;
}
:root[data-theme='dark'] {
	--page: #1f2735;
	--surface: #263142;
	--surface-strong: #2d3b50;
	--text: #eef1f7;
	--muted: #bdc8da;
	--line: #435269;
	--blue: #9bb8dc;
	--blue-hover: #bed0e7;
	--teal: #77d1c3;
	--action: #35577f;
	--action-start: #2b6662;
	--action-hover: #3e648e;
	--cta-start: #243b58;
	--cta-end: #1d4246;
	--cta-eyebrow: #b9cce1;
	--cta-copy: #d0dbe8;
	--cta-arrow-line: rgb(255 255 255 / 32%);
	--cta-orbit-line: rgb(255 255 255 / 8%);
	--navy: #263a55;
	--photo-matte: radial-gradient(ellipse at 15% 15%, rgb(35 155 145 / 14%), transparent 65%), linear-gradient(145deg, #2c3b50, #253044);
	--input: #212c3c;
	--header: rgb(31 39 53 / 94%);
	--shadow: 0 1.5rem 5rem rgb(0 0 0 / 40%);
	color-scheme: dark;
}
*, *::before, *::after {
	box-sizing: border-box;
}
html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--header-offset);
	scrollbar-width: none;
}
/* Hide the page scrollbar while retaining native wheel, keyboard and touch scrolling. */
html::-webkit-scrollbar, body::-webkit-scrollbar {
	display: none;
	width: 0;
	height: 0;
}
body {
	margin: 0;
	background: var(--page);
	color: var(--text);
	font-family: 'Plus Jakarta Sans', 'Segoe UI', 'PingFang SC', 'Microsoft YaHei', sans-serif;
	font-size: 1rem;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
}
html[lang='zh-Hant'] body {
	font-family: 'Plus Jakarta Sans', 'PingFang TC', 'Microsoft JhengHei', sans-serif;
}
body, input, select, textarea, button {
	transition: background-color .2s, color .2s, border-color .2s;
}
button, input, select, textarea {
	font: inherit;
}
button, a, input, select, textarea, summary {
	-webkit-tap-highlight-color: transparent;
}
button {
	cursor: pointer;
}
button, fieldset {
	margin: 0;
}
a {
	color: inherit;
	text-decoration: none;
}
img {
	display: block;
	max-width: 100%;
}
svg {
	flex-shrink: 0;
}
button:disabled {
	cursor: wait;
	opacity: .7;
}
[hidden] {
	display: none !important;
}
:focus-visible {
	outline: 3px solid var(--blue);
	outline-offset: 5px;
}
::selection {
	background: var(--action);
	color: white;
}
h1, h2, h3, p {
	margin: 0;
}
h1, h2, h3 {
	font-weight: 600;
	line-height: 1.16;
}
h1 {
	font-size: clamp(2.7rem, calc(1.5rem + 4vw), 5.1rem);
	letter-spacing: -.045em;
}
h2 {
	font-size: clamp(2.2rem, calc(1.4rem + 2vw), 3.55rem);
	letter-spacing: -.04em;
}
h3 {
	font-size: 1.25rem;
	letter-spacing: -.025em;
}
p {
	color: var(--muted);
}
.container {
	width: min(var(--container), calc(100% - var(--gutter) * 2));
	margin-inline: auto;
}
.section {
	padding-block: 5rem;
}
.text-blue {
	color: var(--blue);
}
.eyebrow {
	display: flex;
	align-items: center;
	gap: .7rem;
	color: var(--blue);
	font-size: .69rem;
	font-weight: 700;
	letter-spacing: .16em;
	line-height: 1.6;
	text-transform: uppercase;
	margin-bottom: 1.4rem;
}
.status-dot, .role-dot {
	width: .45rem;
	height: .45rem;
	border-radius: 50%;
	background: var(--teal);
	flex-shrink: 0;
}
.icon {
	width: 1.35rem;
	height: 1.35rem;
}
.button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 1.5rem;
	min-height: 3.35rem;
	padding: .9rem 1.5rem;
	border: 1px solid transparent;
	border-radius: .35rem;
	font-size: .85rem;
	font-weight: 600;
	line-height: 1.4;
	transition: background .2s, color .2s, transform .2s;
}
.button-primary {
	background: linear-gradient(110deg, var(--action-start), var(--action));
	color: #fff;
}
.button-primary:hover {
	background: var(--action-hover);
	transform: translateY(-2px);
}
.button-small {
	min-height: 2.5rem;
	padding: .65rem 1rem;
	background: var(--surface-strong);
}
.text-link {
	display: inline-flex;
	align-items: center;
	gap: .8rem;
	font-size: .85rem;
	font-weight: 700;
	color: var(--text);
	line-height: 1.5;
}
.text-link .icon, .button .icon {
	transition: transform .25s;
}
.text-link:hover {
	color: var(--blue);
}
.text-link:hover .icon, .button:hover .icon {
	transform: translate(3px, -2px);
}
.skip-link {
	position: fixed;
	top: .8rem;
	left: 1rem;
	z-index: 300;
	padding: .7rem 1rem;
	background: var(--page);
	box-shadow: var(--shadow);
	transform: translateY(-200%);
}
.skip-link:focus {
	transform: translateY(0);
}
.reading-progress {
	position: fixed;
	inset: 0 auto auto 0;
	height: 2px;
	width: 100%;
	background: var(--blue);
	z-index: 200;
	transform: scaleX(0);
	transform-origin: left;
}
.header-placeholder {
	display: none;
}
.scroll-header .header-placeholder {
	display: block;
	height: calc(var(--header-expanded-height) + 1px);
}
.site-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: var(--header);
	backdrop-filter: blur(20px);
	border-bottom: 1px solid var(--line);
}
.scroll-header .site-header {
	position: fixed;
	inset: 0 0 auto;
}
.scroll-header[data-header='compact'] .site-header {
	box-shadow: 0 .55rem 1.5rem rgb(20 40 65 / 12%);
}
.header-ready .site-header {
	transition: box-shadow .32s ease, background-color .2s, border-color .2s;
}
.header-ready .header-inner {
	transition: min-height .32s cubic-bezier(.22, .61, .36, 1);
}
.header-ready .brand-lockup {
	transition: width .32s cubic-bezier(.22, .61, .36, 1);
}
.header-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	min-height: var(--header-height);
}
.brand {
	display: inline-flex;
	align-items: center;
	flex-shrink: 0;
}
.brand-lockup {
	display: inline-grid;
	width: var(--header-logo-width);
	line-height: 0;
}
.brand-logo {
	grid-area: 1 / 1;
	width: 100%;
	height: auto;
}
.brand-logo-dark, [data-theme='dark'] .brand-logo-light {
	display: none;
}
[data-theme='dark'] .brand-logo-dark {
	display: block;
}
.desktop-nav {
	display: none;
	align-items: center;
	gap: 2.5rem;
	font-size: .82rem;
	font-weight: 600;
}
.desktop-nav a {
	position: relative;
	padding-block: .5rem;
}
.desktop-nav a::after {
	content: '';
	position: absolute;
	inset: auto 0 0 0;
	height: 2px;
	background: var(--blue);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform .25s;
}
.desktop-nav a[aria-current], .mobile-nav a[aria-current] {
	color: var(--blue);
}
.desktop-nav a[aria-current]::after, .desktop-nav a:hover::after {
	transform: scaleX(1);
}
.header-actions {
	display: flex;
	align-items: center;
	gap: .55rem;
}
.header-actions .icon-button {
	min-width: 44px;
	min-height: 44px;
}
.icon-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.75rem;
	height: 2.75rem;
	background: transparent;
	border: 1px solid var(--line);
	border-radius: .4rem;
	color: var(--text);
}
.icon-button:hover, .icon-button[aria-expanded='true'] {
	background: var(--surface-strong);
	border-color: var(--blue);
}
.header-cta {
	display: none;
	min-height: 2.75rem;
	padding: .7rem 1.1rem;
}
.mobile-nav {
	padding: 1rem var(--gutter) 1.7rem;
	background: var(--page);
	border-top: 1px solid var(--line);
	max-height: calc(100dvh - var(--header-expanded-height) - 1rem);
	overflow-y: auto;
}
.mobile-nav a {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1rem .5rem;
	font-size: 1.2rem;
	font-weight: 600;
}
.preferences {
	position: absolute;
	right: max(var(--gutter), calc((100vw - var(--container)) / 2));
	top: calc(100% + .65rem);
	width: min(23rem, calc(100vw - 2rem));
	max-height: calc(100dvh - var(--header-expanded-height) - 2rem);
	overflow-y: auto;
	padding: 1.4rem;
	background: var(--page);
	border: 1px solid var(--line);
	border-radius: .9rem;
	box-shadow: var(--shadow);
}
.preferences-heading {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .8rem;
	margin-bottom: 1.4rem;
}
.preferences-heading h2 {
	font-size: 1rem;
	letter-spacing: -.025em;
}
.preferences-heading .icon-button {
	border: 0;
	width: 2rem;
	height: 2rem;
}
.language-form label, .preference-group legend {
	display: flex;
	align-items: center;
	gap: .55rem;
	font-size: .75rem;
	font-weight: 600;
	margin-bottom: .65rem;
}
.language-form .icon {
	width: 1rem;
	height: 1rem;
}
.language-form select {
	width: 100%;
	font-size: .85rem;
	min-height: 2.9rem;
}
.language-apply {
	margin-top: .7rem;
}
.preference-group {
	padding: 0;
	border: 0;
	margin-top: 1.25rem;
}
.segmented-control {
	display: flex;
	gap: .3rem;
	background: var(--surface);
	padding: .3rem;
	border-radius: .5rem;
}
.segmented-control label {
	flex: 1;
	position: relative;
	cursor: pointer;
}
.segmented-control input {
	position: absolute;
	opacity: 0;
	width: 100%;
	height: 100%;
	margin: 0;
}
.segmented-control span {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .45rem;
	padding: .7rem .4rem;
	border: 1px solid transparent;
	border-radius: .3rem;
	font-size: .75rem;
	line-height: 1.4;
}
.segmented-control input:checked + span {
	background: var(--page);
	border-color: var(--line);
	color: var(--blue);
	box-shadow: 0 2px 5px rgb(0 0 0 / 4%);
}
.segmented-control input:focus-visible + span {
	outline: 2px solid var(--blue);
	outline-offset: 1px;
}
.segmented-control .icon {
	width: 1rem;
	height: 1rem;
}
.size-options span {
	flex-direction: column;
	gap: .25rem;
}
.size-options b {
	font-size: 1rem;
	line-height: 1.2;
}
.size-options label:first-child b {
	font-size: .8rem;
}
.size-options label:last-child b {
	font-size: 1.2rem;
}
.no-script-languages {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	padding-block: .5rem;
}
.no-script-languages button {
	padding: .4rem;
	border: 0;
	background: transparent;
	color: var(--blue);
	text-decoration: underline;
}
.hero {
	background: var(--surface);
	overflow: clip;
}
.hero-grid {
	display: grid;
	gap: 2.5rem;
	padding-block: 3rem 2rem;
}
.hero h1 span {
	display: block;
}
.hero-content .eyebrow {
	margin-bottom: 1.5rem;
}
.hero-description {
	max-width: 28rem;
	margin-top: 1.8rem;
	font-size: .98rem;
	line-height: 1.8;
}
.hero-actions {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 1.2rem 1.8rem;
	margin-top: 2rem;
}
.hero-footnote {
	display: flex;
	align-items: center;
	gap: .75rem;
	margin-top: 2.8rem;
	font-size: .6rem;
	font-weight: 700;
	letter-spacing: .12em;
	color: var(--muted);
}
.tiny-mark {
	font-size: 1.3rem;
	color: var(--blue);
}
.hero-visual {
	position: relative;
	min-height: 26rem;
	margin-inline: 0;
}
.hero-photo {
	position: absolute;
	inset: 0;
	border-radius: 1.25rem;
	box-shadow: 0 1.5rem 4rem -2.5rem rgb(12 39 79 / 30%);
}
.image-window {
	position: relative;
	overflow: hidden;
	background: var(--photo-matte);
}
.hero-visual .hero-photo {
	position: absolute;
}
.image-window > img, .image-interlude > img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transform: translate3d(0, var(--parallax-y, 0px), 0) scale(var(--parallax-scale, 1.22));
	will-change: transform;
}
.hero-photo > img {
	--parallax-scale: 1.08;
	object-fit: contain;
	object-position: center;
	padding: 1.5rem 1rem;
}
.hero-bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 1.2rem 1.8rem;
	font-size: .6rem;
	font-weight: 600;
	letter-spacing: .1em;
	color: var(--muted);
}
.hero-bottom > span {
	display: none;
}
.scroll-cue {
	display: flex;
	align-items: center;
	gap: .9rem;
	font-size: .7rem;
	letter-spacing: 0;
}
.scroll-line {
	width: 1px;
	height: 2rem;
	background: var(--line);
	position: relative;
	overflow: hidden;
}
.scroll-line::after {
	content: '';
	position: absolute;
	width: 1px;
	height: .8rem;
	background: var(--blue);
	animation: scroll-down 2s infinite;
}
@keyframes scroll-down {
	0% { transform: translateY(-100%); }
	100% { transform: translateY(3rem); }
}
.service-strip {
	border-bottom: 1px solid var(--line);
}
.service-strip-inner {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}
.service-strip a {
	display: flex;
	align-items: center;
	gap: .65rem;
	padding: 1.3rem .25rem;
	font-size: .72rem;
	font-weight: 600;
}
.service-strip .icon {
	color: var(--blue);
	width: 1.2rem;
	height: 1.2rem;
}
.service-strip .strip-arrow {
	display: none;
}
.split-layout {
	display: grid;
	gap: 2.8rem;
}
.section-intro > p:not(.eyebrow) {
	margin-top: 1.5rem;
	max-width: 29rem;
}
.section-intro .text-link {
	margin-top: 1.8rem;
}
.challenge {
	display: flex;
	align-items: flex-start;
	gap: 1.3rem;
	padding-block: 1.7rem;
	border-top: 1px solid var(--line);
}
.challenge:last-child {
	border-bottom: 1px solid var(--line);
}
.item-number {
	color: var(--blue);
	font-size: .72rem;
	font-weight: 700;
	flex-shrink: 0;
	padding-top: .15rem;
}
.challenge p {
	font-size: .88rem;
	margin-top: .65rem;
	max-width: 24rem;
}
.challenge > .icon {
	margin-left: auto;
	width: 1.1rem;
}
.approach-section {
	background: var(--navy);
	color: white;
	overflow: clip;
}
.approach-grid {
	display: grid;
	gap: 2.5rem;
	padding-block: 2rem 3.5rem;
}
.approach-visual {
	min-height: 21rem;
	border-radius: .4rem;
}
.approach-visual img {
	position: absolute;
	inset: 0;
	object-position: 65% 50%;
}
.approach-visual::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgb(35 70 133 / 8%), rgb(25 46 75 / 75%));
}
.image-word {
	position: absolute;
	bottom: 2rem;
	left: 2rem;
	z-index: 1;
	font-size: 2.4rem;
	font-weight: 600;
	letter-spacing: -.055em;
	line-height: 1.13;
}
.approach-copy .eyebrow {
	color: #a4e1da;
}
.approach-description {
	color: #b6c8de;
	font-size: .93rem;
	margin-block: 1.4rem 2rem;
}
.principle-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1.8rem 1.5rem;
}
.principle-grid article {
	border-top: 1px solid #39516f;
	padding-top: 1rem;
}
.principle-grid article > span {
	font-size: .65rem;
	color: var(--brand-soft);
}
.principle-grid h3 {
	margin-top: .7rem;
	font-size: 1.05rem;
}
.principle-grid p {
	font-size: .75rem;
	color: #b6c8de;
	margin-top: .6rem;
	line-height: 1.8;
}
.capability-block {
	padding-bottom: 3rem;
}
.capability-disclosure {
	border-top: 1px solid #39516f;
}
.capability-disclosure summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-block: 1.1rem;
	font-size: .9rem;
	font-weight: 600;
	cursor: pointer;
	list-style: none;
}
.capability-disclosure summary::-webkit-details-marker {
	display: none;
}
.capability-disclosure summary .icon {
	transition: transform .2s;
}
.capability-disclosure[open] summary .icon {
	transform: rotate(90deg);
}
.capability-list {
	list-style: none;
	padding: 0;
	margin: .25rem 0 1rem;
}
.capability-list li {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: .8rem;
	padding-block: .65rem;
	border-bottom: 1px solid #39516f;
	font-size: .78rem;
	color: #d0dbe8;
}
.capability-status {
	color: #b6c8de;
	font-size: .72rem;
	text-align: right;
	max-width: 8rem;
}
.capability-disclosure > p {
	color: #b6c8de;
	font-size: .72rem;
}
.section-heading {
	display: grid;
	gap: 1.5rem;
	margin-bottom: 3rem;
}
.section-heading > p {
	max-width: 27rem;
}
.services-grid {
	display: grid;
	gap: 2.2rem;
}
.service-editorial {
	height: 22rem;
	border-radius: .4rem;
}
.service-editorial > img {
	--parallax-scale: 1.08;
	object-fit: contain;
	object-position: center;
	padding: 1rem;
}
.service-detail {
	border-top: 1px solid var(--line);
}
.service-detail:nth-of-type(4) {
	border-bottom: 1px solid var(--line);
}
.service-detail summary {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding-block: 1.4rem;
	cursor: pointer;
	list-style: none;
}
.service-detail summary::-webkit-details-marker {
	display: none;
}
.service-detail summary > .icon {
	color: var(--blue);
	width: 1.4rem;
	height: 1.4rem;
}
.service-detail h3 {
	font-size: 1.1rem;
	line-height: 1.4;
}
.accordion-plus {
	position: relative;
	width: 1rem;
	height: 1rem;
	margin-left: auto;
	flex-shrink: 0;
}
.accordion-plus::before, .accordion-plus::after {
	content: '';
	position: absolute;
	background: var(--text);
	left: 0;
	top: 50%;
	width: 100%;
	height: 1px;
	transition: transform .2s;
}
.accordion-plus::after {
	transform: rotate(90deg);
}
details[open] .accordion-plus::after {
	transform: rotate(0deg);
}
.detail-content {
	padding: 0 1.5rem 1.6rem 2.4rem;
}
.detail-content p {
	font-size: .9rem;
}
.detail-content .text-link {
	margin-top: 1rem;
	font-size: .75rem;
}
.fine-print {
	font-size: .7rem;
	line-height: 1.8;
}
.service-accordion > .fine-print {
	margin-top: 1.2rem;
}
.image-interlude {
	position: relative;
	height: 25rem;
	overflow: hidden;
	background: var(--navy);
}
.image-interlude > img {
	--parallax-scale: 1.32;
	position: absolute;
	inset: 0;
	object-position: 50% 50%;
}
.image-interlude::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(90deg, rgb(25 46 75 / 88%), rgb(25 46 75 / 44%));
}
.interlude-content {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	justify-content: center;
	height: 100%;
}
.interlude-content .eyebrow {
	color: var(--brand-soft);
}
.interlude-title {
	color: white;
	font-size: clamp(2rem, calc(1.3rem + 2.7vw), 3.5rem);
	letter-spacing: -.045em;
	font-weight: 500;
	line-height: 1.3;
	max-width: 50rem;
}
.interlude-line {
	height: 2px;
	width: 4rem;
	background: #77d1c3;
	margin-top: 2rem;
}
.coverage-section {
	background: var(--surface);
}
.plans {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 2rem 1.2rem;
}
.plan {
	padding-block: 1.4rem;
	border-top: 1px solid var(--line);
	display: flex;
	flex-direction: column;
	align-items: flex-start;
}
.plan-symbol {
	color: var(--blue);
	font-size: 2.4rem;
	line-height: 1.2;
	margin-bottom: 1.4rem;
}
.plan h3 {
	font-size: 1.55rem;
}
.plan-range {
	font-size: .73rem;
	font-weight: 600;
	margin-top: .65rem;
	color: var(--text);
}
.plan-description {
	font-size: .75rem;
	margin-block: .8rem 1.5rem;
}
.plan .text-link {
	margin-top: auto;
	font-size: .75rem;
	gap: .5rem;
}
.coverage-included {
	border-top: 1px solid var(--line);
	margin-top: 2.2rem;
	padding-top: 2rem;
}
.coverage-included h3 {
	font-size: .85rem;
	margin-bottom: 1.2rem;
}
.coverage-included ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: .8rem;
}
.coverage-included li {
	display: flex;
	align-items: flex-start;
	gap: .6rem;
	font-size: .77rem;
}
.coverage-included .icon {
	width: 1rem;
	height: 1rem;
	color: var(--blue);
	margin-top: .15rem;
}
.coverage-note {
	margin-top: 1.4rem;
	max-width: 65rem;
}
.team-role-list article {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	padding-block: 1.3rem;
	border-top: 1px solid var(--line);
}
.team-role-list .role-dot {
	margin-top: .45rem;
}
.team-role-list h3 {
	font-size: 1.1rem;
}
.team-role-list p {
	font-size: .85rem;
	margin-top: .5rem;
}
.cta-section {
	position: relative;
	padding-block: 4.5rem;
	background: linear-gradient(120deg, var(--cta-start), var(--cta-end));
	color: white;
	overflow: hidden;
}
.cta-inner {
	position: relative;
	z-index: 1;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 2rem;
}
.cta-inner .eyebrow {
	color: var(--cta-eyebrow);
}
.cta-inner h2 {
	font-size: clamp(2.2rem, calc(1.5rem + 2.8vw), 3.8rem);
	max-width: 61rem;
}
.cta-inner p:not(.eyebrow) {
	color: var(--cta-copy);
	font-size: .9rem;
	margin-top: 1.4rem;
	max-width: 35rem;
}
.cta-arrow {
	display: grid;
	place-items: center;
	width: 4.5rem;
	height: 4.5rem;
	border: 1px solid var(--cta-arrow-line);
	border-radius: 50%;
	transition: background .2s, color .2s, transform .2s;
	flex-shrink: 0;
}
.cta-arrow .icon {
	width: 2rem;
	height: 2rem;
}
.cta-arrow:hover {
	background: white;
	color: var(--action);
	transform: rotate(8deg);
}
.cta-orbit {
	position: absolute;
	width: 48rem;
	height: 48rem;
	right: -25rem;
	top: -5rem;
	border: 1px solid var(--cta-orbit-line);
	border-radius: 50%;
	transform: translate3d(0, var(--parallax-y, 0px), 0);
}
.cta-orbit::after {
	content: '';
	position: absolute;
	inset: 5rem;
	border: 1px solid var(--cta-orbit-line);
	border-radius: 50%;
}
.site-footer {
	padding-block: 3.5rem 1.7rem;
}
.footer-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 2.5rem 1.5rem;
}
.footer-brand {
	grid-column: 1 / -1;
}
.footer-brand > p {
	font-size: .9rem;
	margin-block: 0 1rem;
}
.footer-location {
	display: flex;
	align-items: center;
	gap: .65rem;
	font-size: .65rem;
	color: var(--muted);
}
.footer-location i {
	width: .35rem;
	height: .35rem;
	background: var(--blue);
	border-radius: 50%;
	flex-shrink: 0;
}
.footer-grid h2 {
	font-size: .72rem;
	letter-spacing: .04em;
	margin-bottom: 1.1rem;
}
.footer-grid > div:not(.footer-brand) > a {
	display: flex;
	align-items: center;
	gap: .5rem;
	width: fit-content;
	font-size: .76rem;
	color: var(--muted);
	margin-top: .65rem;
}
.footer-grid > div:not(.footer-brand) > a:hover {
	color: var(--blue);
}
.footer-grid .icon {
	width: .9rem;
	height: .9rem;
}
.footer-address {
	font-size: .7rem;
	line-height: 1.9;
	max-width: 18rem;
	margin-top: 1rem;
}
.footer-bottom {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	flex-wrap: wrap;
	gap: 1rem;
	border-top: 1px solid var(--line);
	padding-top: 1.5rem;
	margin-top: 2.8rem;
	font-size: .6rem;
	color: var(--muted);
	padding-right: 3.5rem;
}
.whatsapp-float {
	position: fixed;
	bottom: max(1.3rem, env(safe-area-inset-bottom));
	right: max(1.3rem, env(safe-area-inset-right));
	z-index: 90;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 3.45rem;
	height: 3.45rem;
	border-radius: 50%;
	background: #137b46;
	color: white;
	border: 3px solid var(--page);
	box-shadow: 0 .4rem 1.4rem rgb(0 0 0 / 16%);
	transition: transform .25s, background .25s;
}
.whatsapp-float > .icon {
	width: 1.7rem;
	height: 1.7rem;
}
.whatsapp-float > span {
	position: absolute;
	right: calc(100% + .7rem);
	padding: .6rem .85rem;
	background: var(--text);
	color: var(--page);
	border-radius: .4rem;
	white-space: nowrap;
	font-size: .7rem;
	opacity: 0;
	visibility: hidden;
	transition: opacity .2s;
}
.whatsapp-float:hover, .whatsapp-float:focus-visible {
	transform: translateY(-3px);
	background: #0c6336;
}
.whatsapp-float:hover > span, .whatsapp-float:focus-visible > span {
	opacity: 1;
	visibility: visible;
}
.about-hero {
	padding-top: 3.3rem;
}
.about-heading {
	display: grid;
	gap: 1.6rem;
	margin-bottom: 2.5rem;
}
.about-heading h1 {
	font-size: clamp(2.5rem, calc(1.5rem + 3vw), 4.3rem);
}
.about-heading > p {
	max-width: 24rem;
	font-size: .94rem;
}
.about-photo {
	aspect-ratio: 2 / 1;
	border-radius: .4rem;
}
.about-photo > img {
	--parallax-scale: 1.12;
	object-position: 50% 45%;
}
.image-context-note {
	font-size: .62rem;
	margin-top: .65rem;
}
.about-facts {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem 2.5rem;
	justify-content: space-between;
	padding-block: 1.6rem;
	border-bottom: 1px solid var(--line);
	font-size: .62rem;
	font-weight: 700;
	letter-spacing: .12em;
	color: var(--muted);
}
.story-copy p + p {
	margin-top: 1.4rem;
}
.lead {
	font-size: 1.2rem;
	color: var(--text);
	line-height: 1.8;
}
.values-section {
	background: var(--surface);
}
.values-grid {
	display: grid;
	gap: 2rem;
	margin-top: 3rem;
}
.values-grid article {
	border-top: 1px solid var(--line);
	padding-top: 1.5rem;
}
.values-grid h3 {
	margin-top: 1.5rem;
}
.values-grid p {
	font-size: .9rem;
	margin-top: .8rem;
	max-width: 24rem;
}
.about-office {
	min-height: 23rem;
	border-radius: .4rem;
}
.about-office > img {
	--parallax-scale: 1.06;
	position: absolute;
	inset: 0;
	object-fit: contain;
	padding: 1.5rem 1rem;
}
.section-description {
	margin-block: 1.5rem 1.8rem;
	font-size: .94rem;
}
.contact-heading {
	padding-block: 3.5rem 3rem;
}
.contact-heading h1 {
	font-size: clamp(2.5rem, calc(1.5rem + 3.2vw), 4.6rem);
	max-width: 65rem;
}
.contact-heading > p:last-child {
	margin-top: 1.5rem;
	max-width: 32rem;
}
.contact-section {
	display: grid;
	gap: 3rem;
	padding-bottom: 5rem;
}
.contact-aside {
	order: 2;
}
.contact-image {
	height: 17rem;
	border-radius: .4rem;
	margin-bottom: 2rem;
}
.contact-image > img {
	object-position: 50% 72%;
}
.contact-direct h2 {
	font-size: 1.25rem;
	letter-spacing: -.03em;
}
.contact-direct p {
	font-size: .87rem;
	margin-block: .65rem 1rem;
}
.contact-direct .text-link {
	color: var(--blue);
}
.contact-info {
	display: flex;
	align-items: flex-start;
	gap: 1rem;
	border-top: 1px solid var(--line);
	padding-top: 1.5rem;
	margin-top: 1.5rem;
}
.contact-info > .icon {
	color: var(--blue);
}
.contact-info h3 {
	font-size: .85rem;
	margin-bottom: .65rem;
}
.contact-info p, .contact-info a {
	font-size: .8rem;
	color: var(--muted);
	max-width: 21rem;
}
.inquiry-panel {
	padding: 1.5rem;
	border: 1px solid var(--line);
	border-radius: .6rem;
	background: var(--surface);
	scroll-margin-top: var(--header-offset);
}
.form-heading h2 {
	font-size: 1.65rem;
	letter-spacing: -.04em;
}
.form-heading p {
	font-size: .83rem;
	margin-top: .6rem;
}
.inquiry-form {
	margin-top: 1.8rem;
}
.form-grid {
	display: grid;
	gap: 1.2rem;
}
.form-field {
	min-width: 0;
}
.form-field label {
	display: block;
	font-size: .75rem;
	font-weight: 600;
	margin-bottom: .5rem;
}
.form-field label > span {
	font-weight: 400;
	font-size: .65rem;
	color: var(--muted);
}
input:not([type='radio'], [type='checkbox']), select, textarea {
	background: var(--input);
	color: var(--text);
	border: 1px solid var(--line);
	border-radius: .3rem;
	padding: .8rem .9rem;
	width: 100%;
	font-size: .85rem;
	line-height: 1.6;
	min-height: 3.1rem;
}
select {
	padding-right: .5rem;
}
textarea {
	resize: vertical;
	min-height: 9rem;
}
textarea::placeholder {
	color: var(--muted);
	opacity: .8;
}
input[aria-invalid='true'], select[aria-invalid='true'], textarea[aria-invalid='true'] {
	border-color: #c63737;
}
.inquiry-form > .fine-print {
	margin-top: 1rem;
}
.consent-field {
	margin-block: 1.5rem;
}
.consent-field label {
	display: flex;
	align-items: flex-start;
	gap: .7rem;
	font-size: .72rem;
	color: var(--muted);
	line-height: 1.8;
}
.consent-field input {
	flex-shrink: 0;
	width: 1rem;
	height: 1rem;
	margin: .2rem 0 0;
	accent-color: var(--action);
}
.consent-field a {
	color: var(--blue);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.submit-button {
	width: 100%;
	justify-content: space-between;
}
.required-note {
	font-size: .65rem;
}
.honeypot {
	position: absolute;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip-path: inset(50%);
}
.field-error {
	display: block;
	font-size: .72rem;
	color: #aa2929;
	margin-top: .4rem;
}
[data-theme='dark'] .field-error {
	color: #ffaaaa;
}
.form-alert {
	padding: 1.2rem;
	border-radius: .4rem;
	margin-bottom: 1.8rem;
	font-size: .85rem;
}
.form-alert h2 {
	font-size: 1rem;
	letter-spacing: -.02em;
	margin-bottom: .5rem;
}
.form-success {
	display: flex;
	align-items: flex-start;
	gap: .8rem;
	background: #e7f5ee;
	color: #185937;
	border: 1px solid #b9ddcb;
}
.form-success p {
	color: #295d43;
}
.form-errors {
	background: #fff0f0;
	color: #872e2e;
	border: 1px solid #e5baba;
}
.form-errors ul {
	padding-left: 1.2rem;
	margin-bottom: 0;
}
.form-errors a {
	text-decoration: underline;
}
[data-theme='dark'] .form-success {
	background: #20372b;
	color: #b2edc8;
	border-color: #386d4e;
}
[data-theme='dark'] .form-success p {
	color: #b2d5c1;
}
[data-theme='dark'] .form-errors {
	background: #422728;
	color: #ffc2c2;
	border-color: #854343;
}
.privacy-content {
	max-width: 53rem;
}
.privacy-content h1 {
	font-size: clamp(2.5rem, calc(1.5rem + 3vw), 4rem);
	margin-bottom: 2rem;
}
.privacy-content section {
	margin-top: 2.5rem;
}
.privacy-content section h2 {
	font-size: 1.4rem;
	margin-bottom: .8rem;
}
.privacy-content > .text-link {
	margin-top: 2rem;
}
.not-found {
	min-height: 60vh;
}
.not-found h1 {
	max-width: 48rem;
}
.not-found > p:not(.eyebrow) {
	margin-block: 1.5rem 2rem;
}
.reveal-ready {
	transition: opacity .75s, transform .75s;
}
.reveal-ready.reveal-pending {
	opacity: 0;
	transform: translateY(1.3rem);
}

/* Desktop compositions remain fluid when the text scale changes. */
@media (min-width: 640px) {
	:root { --gutter: 2.25rem; }
	.header-cta { display: inline-flex; }
	.hero-visual { min-height: 32rem; }
	.hero-bottom > span { display: block; }
	.form-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.full-width { grid-column: 1 / -1; }
	.inquiry-panel { padding: 2.2rem; }
	.values-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; }
	.coverage-included ul { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.footer-grid { grid-template-columns: 1.8fr 1fr 1.2fr; gap: 2.5rem; }
	.footer-brand { grid-column: auto; }
	.cta-inner { flex-direction: row; align-items: center; justify-content: space-between; }
	.cta-arrow { width: 6rem; height: 6rem; }
	.cta-arrow .icon { width: 2.8rem; height: 2.8rem; }
	.about-photo { aspect-ratio: 5 / 2; }
}
@media (min-width: 960px) {
	.desktop-nav { display: flex; }
	.menu-toggle { display: none !important; }
	.mobile-nav { display: none !important; }
	:root { --header-expanded-height: 5.5rem; --header-compact-height: 4.25rem; }
	.header-actions { gap: .9rem; }
	.section { padding-block: 6.5rem; }
	.hero-grid { grid-template-columns: 1fr 1fr; gap: 3rem; padding-block: 3.6rem 2rem; min-height: 43rem; }
	.hero-content { padding-block: 1rem; }
	.hero h1 { font-size: clamp(3.3rem, calc(2rem + 2.8vw), 5.1rem); }
	.hero-visual { min-height: 35rem; margin-left: 0; margin-right: 0; }
	.hero-bottom { padding-bottom: 2rem; }
	.service-strip-inner { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.service-strip a { padding: 1.7rem 1rem; border-right: 1px solid var(--line); gap: .9rem; font-size: .75rem; }
	.service-strip a:first-child { padding-left: 0; }
	.service-strip a:last-child { border-right: 0; padding-right: 0; }
	.service-strip .strip-arrow { display: block; margin-left: auto; width: .9rem; height: .9rem; color: var(--muted); }
	.split-layout { grid-template-columns: 1fr 1fr; gap: 6rem; }
	.sticky-copy { position: sticky; top: calc(var(--header-height) + 2.5rem); align-self: start; }
	.challenge { gap: 1.6rem; padding-block: 2rem; }
	.approach-grid { grid-template-columns: 1fr 1.1fr; gap: 4.5rem; padding-block: 4.5rem; }
	.approach-visual { min-height: 41rem; }
	.approach-copy { padding-block: 1rem; }
	.image-word { left: 2.4rem; bottom: 2.4rem; font-size: 3.3rem; }
	.principle-grid { gap: 2.2rem 2rem; }
	.section-heading { grid-template-columns: 1.25fr 1fr; align-items: end; gap: 5rem; margin-bottom: 3.5rem; }
	.section-heading > p { justify-self: end; padding-bottom: .4rem; }
	.services-grid { grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
	.service-editorial { height: 33rem; position: sticky; top: var(--header-offset); }
	.service-detail summary { padding-block: 1.6rem; }
	.image-interlude { height: 33rem; }
	.plans { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 0; }
	.plan { border-right: 1px solid var(--line); padding: 1.7rem 2rem 1.3rem; }
	.plan:first-child { padding-left: 0; }
	.plan:last-child { border-right: 0; padding-right: 0; }
	.plan h3 { font-size: 1.8rem; }
	.plan-range { font-size: .75rem; }
	.plan-description { font-size: .83rem; }
	.coverage-included { display: grid; grid-template-columns: 1fr 2.6fr; gap: 2.5rem; margin-top: 3rem; }
	.cta-section { padding-block: 5.5rem; }
	.cta-arrow { width: 7rem; height: 7rem; }
	.site-footer { padding-block: 4rem 1.8rem; }
	.footer-grid { grid-template-columns: 2fr 1fr 1fr; gap: 5rem; }
	.footer-bottom { padding-right: 0; }
	.about-hero { padding-top: 4.5rem; }
	.about-heading { grid-template-columns: 1.8fr 1fr; gap: 5rem; align-items: end; margin-bottom: 3.3rem; }
	.about-heading > p { justify-self: end; padding-bottom: .3rem; }
	.about-photo { aspect-ratio: 3 / 1; }
	.about-facts { padding-block: 1.8rem; }
	.values-grid { gap: 4rem; }
	.about-office { min-height: 39rem; }
	.about-team .split-layout { gap: 5rem; }
	.contact-heading { padding-block: 4.5rem 3.5rem; }
	.contact-section { grid-template-columns: .85fr 1.3fr; gap: 5rem; padding-bottom: 7rem; }
	.contact-aside { order: 0; }
	.contact-image { height: 20rem; }
	.inquiry-panel { padding: 2.7rem; }
}
@media (min-width: 1400px) {
	.hero-grid { gap: 5rem; }
}
@media (max-width: 380px) {
	:root { --gutter: 1rem; }
	:root { --header-logo-expanded: 9.4rem; --header-logo-compact: 7.75rem; }
	.header-inner { gap: .25rem; }
	.header-actions { gap: .25rem; }
	.header-actions .icon-button { width: 2.4rem; height: 2.4rem; min-width: 44px; min-height: 44px; }
	.hero h1 { font-size: 2.65rem; }
	.hero-actions { gap: 1.3rem; }
	.inquiry-panel { padding: 1.1rem; }
	.plan h3 { font-size: 1.4rem; }
}
html[lang^='zh'] h1, html[lang^='zh'] h2 {
	letter-spacing: -.03em;
	line-height: 1.28;
}
html[lang^='zh'] .eyebrow {
	letter-spacing: .09em;
}
@media (prefers-reduced-motion: reduce) {
	html { scroll-behavior: auto; }
	*, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
	.image-window > img, .image-interlude > img { transform: none; will-change: auto; }
	.cta-orbit { transform: none; }
	.reveal-ready.reveal-pending { opacity: 1; transform: none; }
}
@media print {
	:root { font-size: 12px; --page: white; --text: #102746; --muted: #596a7f; }
	.header-placeholder, .scroll-header .header-placeholder, .site-header, .site-footer, .whatsapp-float, .hero-bottom, .preferences, .reading-progress, .cta-section { display: none; }
	.section { padding-block: 2rem; }
	.reveal-ready.reveal-pending { opacity: 1; transform: none; }
	.image-window > img, .image-interlude > img { transform: none; }
}
