/* DOOR fluid design system — shared typography, spacing and page hierarchy. */
:root {
	--door-font-sans: -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
	/* Fluid type: every level scales with viewport width and keeps safe limits. */
	/* The legacy root is 14px, so rem limits below map to the documented 34–52px range. */
	--door-type-display-1: clamp(2.4286rem, 1.55rem + 2.25vw, 3.7143rem);
	--door-type-display-2: clamp(2.2857rem, 1.55rem + 1.75vw, 3.1429rem);
	--door-type-h1: clamp(2.1429rem, 1.5rem + 1.45vw, 2.8571rem);
	--door-type-h2: clamp(1.8571rem, 1.35rem + 1.05vw, 2.5714rem);
	--door-type-h3: clamp(1.5714rem, 1.18rem + .72vw, 2rem);
	--door-type-h4: clamp(1.2857rem, 1.02rem + .4vw, 1.5714rem);
	--door-type-body-lg: clamp(1.2143rem, 1rem + .2vw, 1.2857rem);
	--door-type-body: clamp(1.0714rem, .9rem + .18vw, 1.1429rem);
	--door-type-body-sm: clamp(.9286rem, .78rem + .16vw, 1rem);
	--door-type-caption: clamp(.8571rem, .72rem + .1vw, .9286rem);
	--door-leading-display: 1.2;
	--door-leading-heading: 1.35;
	--door-leading-body: 1.75;
	--door-space-section: clamp(3rem, 2rem + 3.5vw, 5rem);
	--door-space-section-lg: clamp(3.5rem, 2.25rem + 4vw, 6rem);
	--door-space-heading: clamp(1.75rem, 1.35rem + 1.4vw, 3rem);
	--door-space-card: clamp(1.25rem, 1.05rem + .7vw, 2rem);
	--door-container: 1200px;
	--door-reading: 720px;
	--door-text: #111827;
	--door-text-secondary: #5b6675;
	--door-text-muted: #7b8492;
	--door-surface: #ffffff;
	--door-surface-soft: #f4f7fb;
	--door-surface-blue: #edf4fb;
	--door-surface-blue-strong: #e4eef9;
	--door-dark: #0b2540;
	--door-dark-soft: #17324c;
	--door-accent: #1267d6;
	--door-accent-hover: #0c55b4;
	--door-border: #e5e7eb;
	--door-radius-sm: 4px;
	--door-radius-md: 8px;
	--door-radius-lg: 12px;
}

/*
 * Light-first colour rhythm
 * -------------------------
 * Ordinary content uses white / cool grey surfaces. Dark colour is reserved
 * for one deliberate technology moment and the footer instead of being
 * repeated in every hero and CTA.
 */
body { background: var(--door-surface); color: var(--door-text); }

/* Home: retain the product/platform signal, but remove the dark block directly
   above the footer. This breaks the previous partner-section + footer dark run. */
.home .partner-section--full {
	position: relative;
	color: var(--door-text) !important;
	background:
		radial-gradient(circle at 84% 15%, rgba(36, 130, 222, .24), transparent 26%),
		radial-gradient(circle at 7% 94%, rgba(18, 103, 214, .14), transparent 31%),
		linear-gradient(126deg, #d8e6f3 0%, #eff5fa 47%, #d8e7f5 100%) !important;
}

.home .partner-section--full::before {
	content: "";
	position: absolute;
	inset: 0;
	pointer-events: none;
	background:
		linear-gradient(90deg, rgba(18, 103, 214, .045) 1px, transparent 1px),
		linear-gradient(0deg, rgba(18, 103, 214, .035) 1px, transparent 1px);
	background-size: 72px 72px;
	mask-image: linear-gradient(90deg, transparent, #000 28%, #000 100%);
}

.home .partner-section--full::after {
	content: "";
	position: absolute;
	top: -18%;
	right: -9%;
	width: min(58vw, 860px);
	aspect-ratio: 1.55;
	pointer-events: none;
	background:
		repeating-radial-gradient(ellipse at center, transparent 0 29px, rgba(17, 102, 194, .075) 30px 31px),
		linear-gradient(118deg, transparent 38%, rgba(255, 255, 255, .52) 38.2%, transparent 38.65%);
	transform: rotate(-8deg);
	opacity: .88;
}

.home .partner-full {
	position: relative;
	z-index: 1;
	grid-template-columns: minmax(0, 1.35fr) minmax(340px, .65fr);
	gap: clamp(3rem, 6vw, 6.75rem);
	width: 100%;
	max-width: none;
	margin: 0;
	padding-right: clamp(2rem, 5.5vw, 6rem);
	padding-left: clamp(2rem, 5.5vw, 6rem);
}

.home .partner-full__form {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	max-width: none;
	padding: clamp(.25rem, 1vw, 1rem) clamp(1rem, 3vw, 4rem) clamp(.25rem, 1vw, 1rem) 0;
	background: transparent;
	border: 0;
	border-radius: 0;
	box-shadow: none;
	backdrop-filter: none;
}

.home .partner-full__form::before {
	content: "";
	position: absolute;
	z-index: -1;
	right: -9%;
	bottom: -24%;
	width: 62%;
	aspect-ratio: 1.45;
	pointer-events: none;
	background:
		repeating-linear-gradient(126deg, transparent 0 23px, rgba(18, 103, 214, .045) 24px 25px),
		radial-gradient(ellipse at center, rgba(64, 153, 232, .12), transparent 67%);
	transform: rotate(-5deg);
	opacity: .72;
}

.home .partner-full__form > * {
	position: relative;
	z-index: 1;
}

.home .partner-full .section-kicker {
	color: var(--door-accent) !important;
	font-weight: 600 !important;
}

.home .partner-full h2,
.home .partner-support-card h3 { color: var(--door-text) !important; }

.home .partner-full__form > p,
.home .partner-contact-copy p,
.home .home-partner-note { color: var(--door-text-secondary) !important; }

.home .home-partner-form input,
.home .home-partner-form textarea,
.home .home-partner-choice {
	background: #fff !important;
	border-color: rgba(18, 103, 214, .16) !important;
	box-shadow: 0 5px 18px rgba(24, 58, 94, .055) !important;
}

.home .home-partner-choice label,
.home .home-partner-tags button { color: #39495e !important; }

.home .home-partner-choice {
	padding: 14px 16px;
}

.home .home-partner-choice label {
	margin-bottom: 7px;
	font-weight: 600;
}

.home .home-partner-tags {
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 3px 10px;
}

.home .home-partner-tags button {
	min-height: 30px;
	padding: 3px 4px 3px 22px;
	font-size: clamp(12px, 11.6px + .08vw, 13px);
	font-weight: 600;
	line-height: 1.35;
}

.home .home-partner-tags button::before {
	width: 13px;
	height: 13px;
}

.home .partner-full__side {
	position: relative;
	padding-left: clamp(2.75rem, 5vw, 6rem);
}

.home .partner-full__side::before {
	content: "";
	position: absolute;
	top: 7%;
	bottom: 7%;
	left: 0;
	width: 1px;
	background: linear-gradient(180deg, transparent, rgba(18, 103, 214, .35) 20%, rgba(18, 103, 214, .35) 80%, transparent);
}

.home .partner-full__side::after {
	content: "";
	position: absolute;
	z-index: -1;
	top: 50%;
	left: 58%;
	width: min(34vw, 460px);
	aspect-ratio: 1;
	pointer-events: none;
	background: radial-gradient(circle, rgba(35, 131, 224, .2), rgba(35, 131, 224, .06) 42%, transparent 68%);
	transform: translate(-50%, -50%);
}

.home .partner-full__side .partner-support-card {
	position: relative;
	isolation: isolate;
	overflow: visible;
	padding: clamp(1rem, 2vw, 2rem) 0 !important;
	background: transparent !important;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	backdrop-filter: none;
}

.home .partner-full__side .partner-support-card::before,
.home .partner-full__side .partner-support-card::after {
	content: "";
	position: absolute;
	z-index: -1;
	pointer-events: none;
}

.home .partner-full__side .partner-support-card::before {
	top: -18%;
	right: -18%;
	width: 82%;
	aspect-ratio: 1;
	border: 1px solid rgba(18, 103, 214, .1);
	border-radius: 50%;
	box-shadow:
		0 0 0 38px rgba(18, 103, 214, .025),
		0 0 0 76px rgba(18, 103, 214, .018);
}

.home .partner-full__side .partner-support-card::after {
	right: 1.25rem;
	bottom: 1.25rem;
	width: 88px;
	height: 88px;
	background-image: radial-gradient(rgba(18, 103, 214, .22) 1px, transparent 1.5px);
	background-size: 11px 11px;
	opacity: .52;
}

.home .partner-full__side .partner-support-card > * {
	position: relative;
	z-index: 1;
}

.home .partner-full__side .partner-support-card h3 {
	color: var(--door-text) !important;
	text-align: left;
}

.home .partner-full__side .partner-contact-copy p {
	max-width: 31rem;
	margin-right: 0;
	margin-left: 0;
	color: var(--door-text-secondary) !important;
	text-align: left;
}

.home .partner-full__side .partner-contact-box {
	padding: 0;
	background: transparent !important;
	border: 0 !important;
	box-shadow: none !important;
}

.home .partner-full__side .partner-contact-box img {
	border-radius: 0 !important;
	box-shadow: none;
	clip-path: inset(2px);
}

/* The contact card used white copy on its former blue background. Once the
   surface became light, restore accessible dark copy and retain blue only for
   the clickable phone accent. */
.home .partner-contact-info span {
	color: var(--door-text-secondary) !important;
}

.home .partner-contact-info strong {
	color: var(--door-text) !important;
	font-weight: 600 !important;
}

.home .partner-contact-info a,
.home .partner-contact-info a i {
	color: var(--door-accent) !important;
	font-weight: 600 !important;
}

@media (max-width: 1199.98px) {
	.home .partner-full {
		grid-template-columns: minmax(0, 1fr);
		gap: clamp(2.25rem, 5vw, 3.5rem);
		width: 100%;
		max-width: none;
		padding-right: clamp(1.75rem, 5vw, 3.5rem);
		padding-left: clamp(1.75rem, 5vw, 3.5rem);
	}

	.home .partner-full__form {
		padding-right: 0;
	}

	.home .partner-full__side {
		padding-top: clamp(2rem, 5vw, 3.5rem);
		padding-left: 0;
	}

	.home .partner-full__side::before {
		top: 0;
		right: 0;
		bottom: auto;
		width: 100%;
		height: 1px;
		background: linear-gradient(90deg, transparent, rgba(18, 103, 214, .35) 20%, rgba(18, 103, 214, .35) 80%, transparent);
	}
}

@media (max-width: 767.98px) {
	.home .partner-section--full::before { background-size: 48px 48px; }
	.home .partner-section--full::after {
		top: auto;
		right: -42%;
		bottom: 0;
		width: 115vw;
		opacity: .58;
	}

	.home .partner-full {
		grid-template-columns: minmax(0, 1fr);
		gap: 2rem;
		width: 100%;
		padding-right: 20px !important;
		padding-left: 20px !important;
	}

	.home .partner-full__form {
		padding: 0 !important;
	}

	.home .home-partner-choice {
		padding: 12px 14px;
	}

	.home .home-partner-tags {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2px 8px;
	}

	.home .home-partner-tags button {
		min-height: 31px;
		padding-right: 0;
		font-size: 12px;
	}

	.home .partner-full__side .partner-support-card {
		padding: .5rem 0 0 !important;
	}

	.home .partner-full__form::before {
		right: -28%;
		bottom: -8%;
		width: 95%;
	}

	.home .partner-full__side .partner-support-card h3,
	.home .partner-full__side .partner-contact-copy p {
		text-align: center;
	}

	.home .partner-full__side .partner-contact-copy p {
		margin-right: auto;
		margin-left: auto;
	}
}

/* CTA strips are compact light cards. A dark CTA followed by a dark footer was
   another frequent source of visual heaviness. */
.solution-page-cta,
.product-detail-cta,
.case-detail-cta,
.support-cta__card,
.research-cta__card {
	color: var(--door-text) !important;
	background: linear-gradient(135deg, var(--door-surface-blue), #f8fbff) !important;
	border: 1px solid rgba(18, 103, 214, .14) !important;
	box-shadow: 0 18px 44px rgba(18, 35, 61, .07) !important;
}

.solution-page-cta h2,
.product-detail-cta h2,
.case-detail-cta h3,
.support-cta__card h2,
.research-cta__card h2 { color: var(--door-text) !important; }

.product-detail-cta p,
.case-detail-cta > p,
.case-detail-cta__hint { color: var(--door-text-secondary) !important; }

.solution-page-cta span,
.product-detail-cta span,
.support-cta__card span,
.research-cta__card span { color: var(--door-accent) !important; }

.solution-page-cta .btn-brand,
.product-detail-cta a,
.case-detail-cta__primary,
.research-cta__action--primary {
	color: #fff !important;
	background: var(--door-accent) !important;
	border-color: var(--door-accent) !important;
}

.case-detail-cta__secondary,
.research-cta__action--secondary {
	color: var(--door-accent) !important;
	background: #fff !important;
	border-color: rgba(18, 103, 214, .24) !important;
}

/* R&D keeps its photo-led content, but the full-width production band no
   longer becomes a second dark page inside the page. */
.research-process-section {
	color: var(--door-text) !important;
	background: var(--door-surface-soft) !important;
}
.research-process-section .section-heading h2 { color: var(--door-text) !important; }
.research-process-grid figure {
	background: #fff !important;
	border-color: rgba(18, 103, 214, .12) !important;
}
.research-process-grid figure::after {
	background: linear-gradient(180deg, transparent 28%, rgba(11, 37, 64, .84)) !important;
}

/* The footer remains the single stable dark anchor, but uses a softer navy
   instead of near-black charcoal. */
.site-footer {
	background:
		radial-gradient(circle at 72% 38%, rgba(255, 255, 255, .05) 0 1px, transparent 1px) 0 0 / 14px 14px,
		linear-gradient(180deg, var(--door-dark-soft), var(--door-dark)) !important;
}
.footer-friend-links,
.footer-bottom { background: var(--door-dark) !important; }

/* Selected imported solution templates: retain one dark hero if it is the
   product identity, but convert secondary dark content/CTA bands to light. */
.ai-product-page-shell .park-section--dark {
	color: var(--door-text) !important;
	background: linear-gradient(180deg, var(--door-surface-blue), #f8fbff) !important;
}
.ai-product-page-shell .park-section--dark :is(h2, h3, strong) { color: var(--door-text) !important; }
.ai-product-page-shell .park-section--dark :is(p, li, span) { color: var(--door-text-secondary) !important; }

.ai-product-page-shell :is(.drzk-band, .module-band, .hospital-value-band, .hospital-hardware) {
	color: var(--door-text) !important;
	background: linear-gradient(135deg, var(--door-surface-blue), #f8fbff) !important;
}
.ai-product-page-shell :is(.drzk-band, .module-band, .hospital-value-band, .hospital-hardware) :is(h2, h3, strong) {
	color: var(--door-text) !important;
}
.ai-product-page-shell :is(.drzk-band, .module-band, .hospital-value-band, .hospital-hardware) :is(p, li, span) {
	color: var(--door-text-secondary) !important;
}
.ai-product-page-shell :is(.drzk-band, .module-band, .hospital-value-band) article {
	background: rgba(255, 255, 255, .9) !important;
	border-color: rgba(18, 103, 214, .14) !important;
}
.ai-product-page-shell .hospital-value-grid {
	border-color: rgba(18, 103, 214, .14) !important;
}
.ai-product-page-shell .hospital-value-grid article {
	border-color: rgba(18, 103, 214, .14) !important;
}
.ai-product-page-shell .hospital-hardware li { border-color: rgba(18, 103, 214, .14) !important; }
.ai-product-page-shell .hospital-hardware li b { color: var(--door-accent) !important; }
.ai-product-page-shell .hospital-photo-main { border-color: rgba(255, 255, 255, .72) !important; }
.ai-product-page-shell .hospital-photo-small { border-color: #d9e7f6 !important; }

.ai-product-page-shell :is(.drzk-cta, .park-cta, .hospital-cta, .szc-cta, .solution-ai-cta) {
	color: var(--door-text) !important;
	background: linear-gradient(135deg, var(--door-surface-blue), #f8fbff) !important;
	border-top: 1px solid rgba(18, 103, 214, .12) !important;
}
.ai-product-page-shell :is(.drzk-cta, .park-cta, .hospital-cta, .szc-cta, .solution-ai-cta) :is(h2, h3, strong) {
	color: var(--door-text) !important;
}
.ai-product-page-shell :is(.drzk-cta, .park-cta, .hospital-cta, .szc-cta, .solution-ai-cta) :is(p, span) {
	color: var(--door-text-secondary) !important;
}
.ai-product-page-shell :is(.drzk-cta, .park-cta, .hospital-cta, .szc-cta, .solution-ai-cta) a {
	color: #fff !important;
	background: var(--door-accent) !important;
	border-color: var(--door-accent) !important;
}

/* Smart-building was the only imported solution rendered as a fully dark
   multi-screen page. Keep its cinematic hero, then return the content to the
   same light rhythm as the rest of the site. */
.ai-product-page-shell[data-ai-product-page="smart-building-solution"] .building-section {
	color: var(--door-text) !important;
	background: var(--door-surface) !important;
}
.ai-product-page-shell[data-ai-product-page="smart-building-solution"] .building-section:nth-of-type(even) {
	background: var(--door-surface-soft) !important;
}
.ai-product-page-shell[data-ai-product-page="smart-building-solution"] .building-section :is(h2, h3, h4, strong) {
	color: var(--door-text) !important;
}
.ai-product-page-shell[data-ai-product-page="smart-building-solution"] .building-section :is(p, li, span) {
	color: var(--door-text-secondary) !important;
}
.ai-product-page-shell[data-ai-product-page="smart-building-solution"] .building-section :is(article, .building-pain-card, .building-module-card, .building-scene-card) {
	background-color: #fff !important;
	border-color: rgba(18, 103, 214, .14) !important;
	box-shadow: 0 14px 34px rgba(18, 35, 61, .06) !important;
}

@media (max-width: 767.98px) {
	.home .partner-section--full {
		background: linear-gradient(180deg, #fff, var(--door-surface-blue)) !important;
	}

	.solution-page-cta,
	.product-detail-cta,
	.case-detail-cta,
	.support-cta__card,
	.research-cta__card { padding: var(--door-space-card) !important; }
}

body,
button,
input,
select,
textarea {
	font-family: var(--door-font-sans);
}

.site-header .nav-link,
.site-header .nav-contact__phone,
.site-header .nav-popover__title,
.site-header .nav-popover__leaf,
.site-header .nav-popover__node {
	font-size: clamp(.9286rem, .88rem + .1vw, 1rem);
	font-weight: 400;
}

.site-header .navbar-nav > .nav-item > .nav-link {
	font-weight: 400 !important;
	letter-spacing: 0;
}

.site-header .nav-popover__title,
.site-header .nav-popover__node,
.site-header .nav-popover__title.nav-popover__leaf {
	font-size: var(--door-type-h4) !important;
	font-weight: 500 !important;
}

.site-header .nav-popover__leaf:not(.nav-popover__title) {
	font-weight: 400 !important;
}

/* Service Support is a compact four-link dropdown. Its direct leaf links are
   secondary navigation, so they must not inherit the H4 title scale. */
.site-header .nav-mega[data-top="服务支持"] .nav-popover__title.nav-popover__leaf {
	font-size: clamp(1rem, .96rem + .08vw, 1.1071rem) !important;
	font-weight: 400 !important;
	line-height: 1.55 !important;
}

/* The hotline is a utility number, not a navigation label. Restore its former
   desktop scale while keeping the surrounding menu at the lighter weight. */
.site-header .nav-contact__phone {
	font-size: clamp(1.2857rem, 1.08rem + .48vw, 1.5rem);
	font-weight: 600;
}

/* One hierarchy across all page bodies. More specific component rules below
   can choose a smaller card token, but ordinary headings never inherit the
   legacy 800/900 weights. */
body :is(main, .home, .partner-section, .ai-product-page-shell) :is(h1, h2, h3, h4, h5, h6) {
	font-family: var(--door-font-sans);
	font-weight: 600 !important;
	letter-spacing: 0;
}

body main h1 {
	font-size: var(--door-type-h1) !important;
	line-height: 1.3 !important;
}

body main h2 {
	font-size: var(--door-type-h2) !important;
	line-height: var(--door-leading-heading) !important;
}

body main h3 {
	font-size: var(--door-type-h3) !important;
	line-height: var(--door-leading-heading) !important;
}

body main :is(h4, h5, h6) {
	font-size: var(--door-type-h4) !important;
	line-height: 1.5 !important;
}

.site-footer h5,
body .online-wechat h3 {
	font-weight: 600 !important;
}

/* Home */
.home .hero-slider .hero__copy h1,
.home .hero-slider .hero__copy h2 {
	max-width: 900px;
	margin-top: 1rem;
	margin-bottom: 1rem;
	font-family: var(--door-font-sans);
	font-size: var(--door-type-display-1) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-display) !important;
	letter-spacing: 0;
}

/* Match the legacy mobile hero selector so its fixed 32px value cannot win. */
body.home-immersive-header .hero-slider .hero__copy h1,
body.home-immersive-header .hero-slider .hero__copy h2,
body.home-immersive-header .hero-slider .hero__copy h3 {
	font-size: var(--door-type-display-1) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-display) !important;
}

.home .hero-slider .hero__copy > p {
	max-width: var(--door-reading);
	font-size: var(--door-type-body-lg) !important;
	font-weight: 400;
	line-height: var(--door-leading-body);
}

.home .hero-slider .hero__actions { margin-top: 1.5rem; }

.home .hero-slider .hero__action {
	min-height: 44px;
	padding: 11px 22px;
	font-size: var(--door-type-body);
	font-weight: 500;
}

.home .section-heading h2,
.home .product-atlas-heading h2,
.home .product-atlas-heading.product-atlas-heading--centered h2,
.home .solution-map__heading h2,
.home.home .solution-map__heading h2,
.home .platform-copy h2,
.home .proof-layout h2,
.home .home-news-editorial__intro h2,
.home .partner-full__form h2 {
	font-family: var(--door-font-sans);
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
	letter-spacing: 0;
	text-wrap: balance;
}

body .home .section-heading h2,
body .home .product-atlas-heading h2,
body .home .product-atlas-heading.product-atlas-heading--centered h2,
body .home .solution-map__heading h2,
body .home.home .solution-map__heading h2,
body .home .process-section .section-heading h2 {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

/* ADMS summary is a section title, so it follows the same H2 scale as the
   product, solution, process, case and news sections on the homepage. */
body .home.home .platform-copy h2.platform-copy__title--summary {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
	letter-spacing: 0 !important;
}

.home .section-heading p,
.home .product-atlas-heading__intro,
.home .solution-map__heading p,
.home .platform-copy .lead,
.home .proof-layout p {
	font-size: var(--door-type-body) !important;
	font-weight: 400;
	line-height: var(--door-leading-body);
}

.home .product-atlas-heading,
.home .section-heading,
.home .solution-map__heading { margin-bottom: var(--door-space-heading); }

.home .product-atlas-section,
.home.home .home-solution-section,
.home .platform-section,
.home .platform-section + .process-section,
.home .process-section,
.home .proof-section,
.home .home-news-section {
	padding-top: var(--door-space-section);
	padding-bottom: var(--door-space-section);
}

.home .product-atlas { gap: 1rem; }

.home .product-atlas__type,
.home .solution-paths__copy h3,
.home .platform-capabilities strong,
.home .process-card strong,
.home .home-case-card h3,
.home .home-news-editorial__feature-copy h3,
.home .home-news-editorial__item h3 { font-weight: 600; }

.home .solution-paths__copy h3 {
	font-size: var(--door-type-h3);
	line-height: var(--door-leading-heading);
}

.home .process-card strong,
.home .home-case-card h3 {
	font-size: var(--door-type-h4);
	line-height: 1.5;
}

/* Homepage news index is a compact scanning list, not a card-title tier.
   Keep it fluid, but below the H4 ceiling so long Chinese headlines do not
   dominate the metadata and rhythm of the four-row index. */
.home .home-news-editorial__item h3 {
	font-size: clamp(18px, calc(15px + .35vw), 21px) !important;
	line-height: 1.45 !important;
}

.home .section-kicker,
.home .platform-eyebrow,
.home .home-news-editorial__meta,
.home .home-news-editorial__item-meta { font-weight: 500; }

/* About */
.about-hero { min-height: clamp(340px, 36vw, 480px); }

.about-hero__content {
	padding-top: clamp(112px, 10vw, 150px);
	padding-bottom: clamp(40px, 4.5vw, 64px);
}

.about-hero h1,
.about-hero__honor-copy h1,
.about-hero__media-copy h1 {
	margin-bottom: 1rem;
	font-family: var(--door-font-sans);
	font-size: var(--door-type-display-2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-display) !important;
	letter-spacing: 0;
}

.about-hero h1 { margin-left: clamp(1rem, 1.5vw, 1.5rem); }

.about-hero p,
.about-hero__honor-copy p,
.about-hero__media-copy p {
	max-width: var(--door-reading);
	font-size: var(--door-type-body-lg) !important;
	font-weight: 400;
	line-height: var(--door-leading-body);
}

.about-hero p { margin-left: clamp(1rem, 1.5vw, 1.5rem); }

.about-page .pages {
	padding-top: var(--door-space-section);
	padding-bottom: var(--door-space-section-lg);
}

.about-page .about-tab-panel > section,
.about-page .about-tab-panel > header,
.about-page .about-culture-body,
.about-page .about-culture-banner {
	margin-top: 0;
	margin-bottom: var(--door-space-section);
}

.about-page .about-statement h2,
.about-page .about-film__content h2,
.about-page .about-delivery h2,
.about-page .about-ecosystem__head h2,
.about-page .about-network h2,
.about-page .about-closing h2,
.about-page .about-honor-intro h1,
.about-page .about-family-education__head h2,
.about-page .about-family-principles h3 {
	font-family: var(--door-font-sans);
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
	letter-spacing: 0;
}

.about-page .about-statement__copy p,
.about-page .about-film__content p,
.about-page .about-delivery__copy > p,
.about-page .about-ecosystem__head p,
.about-page .about-network__intro > p,
.about-page .about-culture-copy > p,
.about-page .about-family-education__head p,
.about-page .about-family-education__copy > p {
	font-size: var(--door-type-body) !important;
	font-weight: 400;
	line-height: 1.85;
}

.about-page .about-delivery__lines strong,
.about-page .about-ecosystem li strong,
.about-page .about-family-principles strong,
.about-page .about-honor-group__head h3,
.about-page .about-honor-card h4,
.about-page .about-timeline strong,
.about-page .about-proof-rail strong,
.about-page .about-delivery__numbers strong,
.about-page .about-honor-intro__metrics strong { font-weight: 600; }

/* About / Spirit: a plain formal list, matching the supplied reference. */
.about-page .about-spirit-simple {
	width: min(1120px, calc(100% - 48px));
	margin: 0 auto !important;
	padding: var(--door-space-section) 0 var(--door-space-section-lg) !important;
}

.about-page .about-spirit-simple__list {
	margin: 0;
	border: 0 !important;
}

.about-page .about-spirit-simple__list > div {
	display: grid;
	grid-template-columns: max-content minmax(0, 1fr);
	gap: clamp(.75rem, .5rem + .6vw, 1.4rem);
	align-items: baseline;
	padding: clamp(.48rem, .36rem + .35vw, .75rem) 0 !important;
	border: 0 !important;
}

.about-page .about-spirit-simple__list dt,
.about-page .about-spirit-simple__list dd {
	margin: 0;
	color: var(--door-text) !important;
	font-size: clamp(1.1429rem, 1.02rem + .32vw, 1.4286rem) !important;
	line-height: 1.65 !important;
	letter-spacing: 0;
}

.about-page .about-spirit-simple__list dt { font-weight: 600 !important; }
.about-page .about-spirit-simple__list dd { font-weight: 500 !important; }

@media (max-width: 767.98px) {
	.about-page .about-spirit-simple {
		width: calc(100% - 40px);
	}

	.about-page .about-spirit-simple__list > div {
		gap: .5rem;
		align-items: start;
	}
}

/* Solution listing */
.solution-page-hero {
	padding-top: var(--door-space-section);
	padding-bottom: var(--door-space-section);
}

.solution-page-hero h1 {
	margin-top: .75rem;
	margin-bottom: 1rem;
	font-family: var(--door-font-sans);
	font-size: var(--door-type-display-2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-display) !important;
	letter-spacing: 0;
}

.solution-page-hero p {
	font-size: var(--door-type-body-lg) !important;
	font-weight: 400;
	line-height: var(--door-leading-body);
}

.solution-page-hero__tags { gap: .5rem; margin-top: 1.5rem; }

.solution-page-hero__tags span {
	padding: 7px 13px;
	border-radius: var(--door-radius-sm);
	font-size: var(--door-type-body-sm);
	font-weight: 500;
}

.solution-page-hero__panel {
	padding: var(--door-space-card);
	border-radius: var(--door-radius-lg);
}

.solution-page-hero__panel strong {
	margin-bottom: .5rem;
	font-size: var(--door-type-h4);
	font-weight: 600;
}

.solution-page .pages { padding-top: clamp(1.5rem, 1rem + 1.5vw, 2rem); }

.solution-page-overview,
.solution-page-section {
	padding-top: var(--door-space-section);
	padding-bottom: var(--door-space-section);
}

.solution-page-head h2 {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

.solution-page-category { margin-top: clamp(2rem, 1.5rem + 1.4vw, 2.5rem); }

.solution-page-category + .solution-page-category {
	padding-top: clamp(3rem, 2rem + 2vw, 4rem);
}

.solution-page-category__head { margin-bottom: var(--door-space-card); }

.solution-page-category__head em,
.solution-page-head span,
.solution-page-card__body em,
.solution-page-category__head a,
.solution-page-subnav a { font-weight: 500; }

.solution-page-category__head h3 {
	font-size: var(--door-type-h3) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

.solution-page-category__head p,
.solution-page-card__body p {
	font-size: var(--door-type-body) !important;
	font-weight: 400;
	line-height: var(--door-leading-body);
}

.solution-page-grid { gap: clamp(1rem, .75rem + .8vw, 1.5rem); }

.solution-page-card {
	border-radius: var(--door-radius-lg);
	box-shadow: 0 12px 28px rgba(18, 35, 61, .06);
}

.solution-page-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 18px 38px rgba(18, 35, 61, .1);
}

.solution-page-card__body { padding: var(--door-space-card); }

.solution-page-card__body h3,
.solution-page-card--content .solution-page-card__body h3 {
	font-size: var(--door-type-h4) !important;
	font-weight: 600 !important;
	line-height: 1.5;
}

.solution-page-cta {
	margin-top: clamp(2rem, 1.5rem + 1.2vw, 2.5rem);
	margin-bottom: var(--door-space-section);
	padding: var(--door-space-card) clamp(1.5rem, 1.15rem + 1.2vw, 2.5rem);
	border-radius: var(--door-radius-lg);
}

.solution-page-cta span { font-weight: 500; }

.solution-page-cta h2 {
	font-size: var(--door-type-h3) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

/* Phase 2 — product catalog and product detail */
.product-center-hero__copy h1,
.product-category-hero__copy h1,
.product-detail-intro h1 {
	font-family: var(--door-font-sans);
	font-size: var(--door-type-display-2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-display) !important;
	letter-spacing: 0;
}

.product-center-hero__copy p,
.product-category-hero__copy p,
.product-detail-intro > p {
	font-size: var(--door-type-body-lg) !important;
	font-weight: 400;
	line-height: var(--door-leading-body) !important;
}

.product-hub__head h2,
.product-shelf-head h2,
.product-generic-head h2,
.parking-hardware-catalog__head h2,
.product-detail-heading h2,
.product-detail-cta h2,
.mobile-app-intro h2 {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
	letter-spacing: 0;
}

.product-series__head h3,
.parking-hardware-panel__head h3,
.product-video-copy h3,
.product-rich-content h2,
.product-rich-content h3,
.product-rich-copy h2,
.product-rich-copy h3,
.product-spec-card h3,
.product-consult-card h3 {
	font-size: var(--door-type-h3) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

.parking-product-section h2 {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

.product-title-card__body strong,
.product-case-card h3,
.product-solution-card__body h3 {
	font-size: var(--door-type-h4) !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
}

.product-category-hero,
.product-center-hero {
	padding-top: var(--door-space-section);
	padding-bottom: var(--door-space-section);
}

.product-center-pages,
.product-detail-section {
	padding-top: var(--door-space-section);
	padding-bottom: var(--door-space-section);
}

.product-category-hero__tags span,
.product-category-hero__actions a,
.hero-action,
.sortnav__btn,
.parking-overview-tabs__button {
	font-size: var(--door-type-body-sm) !important;
	font-weight: 500 !important;
}

/* Phase 2 — case center and case content */
.case-hero h1,
.page-hero.case-detail-hero h1 {
	font-family: var(--door-font-sans);
	font-size: var(--door-type-display-2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-display) !important;
	letter-spacing: 0;
}

.case-hero p,
.page-hero.case-detail-hero p {
	font-size: var(--door-type-body-lg) !important;
	font-weight: 400;
	line-height: var(--door-leading-body) !important;
}

.case-page .case-feature__content h2,
.case-page .case-tab-heading h2,
.case-page .case-cta-card h2,
.article-detail.case-detail h2 {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

.case-detail-content h2 {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

.case-detail-cta h3 {
	font-size: var(--door-type-h3) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

.case-page .case-card__body h3 {
	font-size: var(--door-type-h4) !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
}

.case-page > .pages,
.case-page .container.pages,
.case-tabs-section {
	padding-top: var(--door-space-section);
	padding-bottom: var(--door-space-section);
}

.case-page .case-card-grid {
	gap: var(--door-space-section) clamp(1.5rem, 1rem + 1vw, 2.5rem);
}

/* Phase 3 — news center and article */
.news-context-hero h1,
.news-hero h1 {
	font-family: var(--door-font-sans);
	font-size: var(--door-type-display-2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-display) !important;
	letter-spacing: 0;
}

.news-context-hero p,
.news-hero p {
	font-size: var(--door-type-body-lg) !important;
	font-weight: 400;
	line-height: var(--door-leading-body) !important;
}

.news-page .news-list-card h3,
.news-page .news-list-card.is-featured h3 {
	font-size: var(--door-type-h4) !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
}

.news-page .news-tab-heading h2 {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

.news-page > .pages,
.news-page .container.pages,
.news-tabs-section {
	padding-top: var(--door-space-section);
	padding-bottom: var(--door-space-section);
}

.news-page .news-list-grid {
	gap: var(--door-space-section) clamp(1.5rem, 1rem + 1vw, 2.75rem);
}

.article-detail__head h1,
.article-detail h1 {
	font-size: var(--door-type-h1) !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	letter-spacing: 0;
}

.article-detail,
.article-detail .content {
	font-size: var(--door-type-body) !important;
	line-height: 1.9 !important;
}

/* Shared secondary templates — search, jobs, video, platform and selector */
.page-hero h1,
.search-hero h1,
.video-detail-hero h1,
.platform-hero__copy h1,
.product-selector-page .ps-hero h1 {
	font-family: var(--door-font-sans);
	font-size: var(--door-type-display-2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-display) !important;
	letter-spacing: 0;
}

.search-result-head h2,
.platform-page h2,
.product-selector-page h2,
.video-detail-page h2 {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
}

.job-meta-card h3,
.search-result-card h3,
.video-detail-card h3,
.product-selector-page h3 {
	font-size: var(--door-type-h4) !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
}

.search-page,
.video-detail-page .pages,
.platform-page > section,
.product-selector-page > section {
	padding-top: var(--door-space-section);
	padding-bottom: var(--door-space-section);
}

/* Imported AI product and solution pages keep their visual identity, but share
   the same fluid type ceiling and readable weights as the CMS templates. */
.ai-product-page-shell :is(h1, .hero-title, .ai-hero-title, .drzk-hero h1) {
	font-size: var(--door-type-display-1) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-display) !important;
	letter-spacing: 0 !important;
}

.ai-product-page-shell :is(h2, .section-title, .drzk-title h2) {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
	letter-spacing: 0 !important;
}

.ai-product-page-shell :is(h3, .card-title) {
	font-size: var(--door-type-h4) !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
}

.ai-product-page-shell :is(h4, h5, h6) {
	font-size: var(--door-type-h4) !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
}

.ai-product-page-shell :is(p, li, blockquote) {
	font-size: var(--door-type-body) !important;
	line-height: var(--door-leading-body) !important;
}

.ai-product-page-shell[data-ai-product-page] :is(
	.product-ai-page,
	.ai-demo-product,
	.drzk-solution,
	.solution-ai-page,
	.campus-page,
	.park-page,
	.hospital-solution
) :is(p, li, blockquote) {
	font-size: var(--door-type-body) !important;
	line-height: var(--door-leading-body) !important;
}

/* Phase 3 — service, contact, partner and research page families */
.partner-hero h1,
.contact-hero h1,
.support-hero h1,
.research-hero h1 {
	font-family: var(--door-font-sans);
	font-size: var(--door-type-display-2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-display) !important;
	letter-spacing: 0;
}

.partner-hero p,
.contact-hero p,
.support-hero p,
.research-hero p {
	font-size: var(--door-type-body-lg) !important;
	font-weight: 400;
	line-height: var(--door-leading-body) !important;
}

.partner-page h2,
.contact-page h2,
.support-page h2,
.research-page h2 {
	font-size: var(--door-type-h2) !important;
	font-weight: 600 !important;
	line-height: var(--door-leading-heading) !important;
	letter-spacing: 0;
}

.partner-page h3,
.contact-page h3,
.support-page h3,
.research-page h3 {
	font-size: var(--door-type-h4) !important;
	font-weight: 600 !important;
	line-height: 1.5 !important;
}

.partner-page > .pages,
.contact-page > section,
.support-page > section,
.research-page > section {
	padding-top: var(--door-space-section);
	padding-bottom: var(--door-space-section);
}

@media (max-width: 991.98px) {
	.solution-page-hero .container { grid-template-columns: 1fr; gap: 2rem; }
}

@media (max-width: 767.98px) {
	.home .hero-slider .hero__copy h1,
	.home .hero-slider .hero__copy h2 { white-space: normal; }

	.about-page .pages,
	.solution-page .pages { padding-right: 20px; padding-left: 20px; }

	.about-hero p,
	.about-hero__honor-copy p,
	.about-hero__media-copy p { max-width: 310px; }

	.solution-page-hero__panel,
	.solution-page-card__body,
	.solution-page-cta { padding: var(--door-space-card); }

	.product-center-pages,
	.case-page > .pages,
	.case-page .container.pages,
	.news-page > .pages,
	.news-page .container.pages,
	.partner-page > .pages {
		padding-right: 20px !important;
		padding-left: 20px !important;
	}
}

@media (prefers-reduced-motion: reduce) {
	.home .product-atlas__item,
	.home .solution-paths__panel,
	.solution-page-card,
	.solution-page-card__media img { transition-duration: .01ms !important; }
}
