/*
Theme Name: the7dtchild
Author: Dream-Theme
Author URI: http://dream-theme.com/
Description: The7 is perfectly scalable, performance and SEO optimized, responsive, retina ready multipurpose WordPress theme. It will fit every site â€“ big or small. From huge corporate portals to studio or personal sites â€“ The7 will become a great foundation for your next project!
Version: 1.0.9
License: This WordPress theme is comprised of two parts: (1) The PHP code and integrated HTML are licensed under the GPL license as is WordPress itself.  You will find a copy of the license text in the same directory as this text file. Or you can read it here: http://wordpress.org/about/gpl/ (2) All other parts of the theme including, but not limited to the CSS code, images, and design are licensed according to the license purchased. Read about licensing details here: http://themeforest.net/licenses/regular_extended
Template: dt-the7
*/

/*
 * Sitewide default: DINNextLTArabic (all weights via child fonts/dinnext/).
 * Revert: remove/comment this block to restore The7 Roboto / Roboto Condensed.
 *
 * متغيرات هوية PSS (Power Security Systems — أنظمة أمنية):
 * استخدم --pss-color-navy و --pss-color-red و --pss-font-family في أي تصميم جديد
 * لضمان اتساق الألوان والخط مع هوية الشركة.
 */
:root {
	--pss-color-navy: #1f365c;
	--pss-color-red: #dd3333;
	--pss-color-red-deep: #b91c1c;
	--pss-color-red-wash: #fceded;
	--pss-color-ink: #242629;
	--pss-color-muted: #51627d;
	--pss-color-night: #122939;
	--pss-color-line: rgba(31, 54, 92, 0.1);
	--pss-color-surface: #ffffff;
	--pss-color-tint: #f6f8fb;
	--pss-font-family: "DINNextLTArabic", "DIN Next LT Arabic", Tahoma, Arial, sans-serif;

	--pss-fs-xs: 0.8125rem;
	--pss-fs-sm: 0.9375rem;
	--pss-fs-base: 1rem;
	--pss-fs-md: 1.125rem;
	--pss-fs-lg: clamp(1.25rem, 1.6vw, 1.5rem);
	--pss-fs-xl: clamp(1.6rem, 2.6vw, 2.25rem);
	--pss-fs-2xl: clamp(2rem, 4vw, 3.2rem);
	--pss-fs-hero: clamp(2.2rem, 4.6vw, 3.6rem);
	--pss-lh-body: 1.7;
	--pss-lh-heading: 1.15;

	--pss-space-1: 0.25rem;
	--pss-space-2: 0.5rem;
	--pss-space-3: 0.75rem;
	--pss-space-4: 1rem;
	--pss-space-5: 1.5rem;
	--pss-space-6: 2rem;
	--pss-space-7: 3rem;
	--pss-space-8: 4.5rem;
	--pss-section-pad: clamp(2.8rem, 5vw, 4.6rem);
	--pss-container: min(84rem, 100% - 2 * clamp(1.1rem, 3vw, 1.5rem));

	--pss-radius-card: 1.55rem;
	--pss-radius-card-secondary: 1.1rem;
	--pss-radius-control: 0.5rem;
	--pss-shadow-card: 0 20px 44px rgba(31, 54, 92, 0.14);
	--pss-shadow-card-secondary: 0 6px 18px rgba(31, 54, 92, 0.05);
	--pss-ease: cubic-bezier(0.2, 0, 0, 1);
	--pss-dur-fast: 180ms;
	--pss-dur-base: 320ms;

	--the7-base-font-family: var(--pss-font-family);
	--the7-h1-font-family: var(--pss-font-family);
	--the7-h2-font-family: var(--pss-font-family);
	--the7-h3-font-family: var(--pss-font-family);
	--the7-h4-font-family: var(--pss-font-family);
	--the7-h5-font-family: var(--pss-font-family);
	--the7-h6-font-family: var(--pss-font-family);
	--the7-menu-font-family: var(--pss-font-family);
	--the7-submenu-font-family: var(--pss-font-family);
	--the7-mobile-menu-font-family: var(--pss-font-family);
	--the7-mobile-sub-menu-font-family: var(--pss-font-family);
	--the7-page-title-font-family: var(--pss-font-family);
	--the7-btn-l-font-family: var(--pss-font-family);
	--the7-btn-m-font-family: var(--pss-font-family);
	--the7-btn-s-font-family: var(--pss-font-family);
	--the7-filter-font-family: var(--pss-font-family);
	--the7-widget-title-font-family: var(--pss-font-family);
	--the7-widget-content-font-family: var(--pss-font-family);
	--the7-breadcrumbs-font-family: var(--pss-font-family);
	--the7-top-bar-font-family: var(--pss-font-family);
	--the7-mega-menu-title-font-family: var(--pss-font-family);
	--the7-mega-menu-desc-font-family: var(--pss-font-family);
	--the7-additional-logo-elements-font-family: var(--pss-font-family);
	--the7-additional-menu-elements-font-family: var(--pss-font-family);
	--the7-microwidgets-in-top-line-font-family: var(--pss-font-family);
	--the7-mobile-microwidgets-font-family: var(--pss-font-family);
	--the7-mobile-menu-microwidgets-font-family: var(--pss-font-family);
	--the7-microwidget-button-font-family: var(--pss-font-family);
	--the7-microwidget-button-2-font-family: var(--pss-font-family);
	--the7-mw-search-font-family: var(--pss-font-family);
	--the7-menu-caption-font-family: var(--pss-font-family);
	--the7-mobile-menu-caption-font-family: var(--pss-font-family);
	--the7-close-menu-caption-font-family: var(--pss-font-family);
	--the7-close-mobile-menu-caption-font-family: var(--pss-font-family);
	--the7-subtitle-font-family: var(--pss-font-family);
	--the7-sub-subtitle-font-family: var(--pss-font-family);
	--the7-woo-title-font-family: var(--pss-font-family);
	--the7-woo-content-font-family: var(--pss-font-family);
}

/* يحل محل #1F73BE من Custom CSS القديم في خيارات The7 */
#page .woocommerce-Price-amount.amount {
	color: var(--pss-color-navy) !important;
	font-weight: 600;
}

body,
#page {
	font-family: var(--pss-font-family);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

/*
 * أنماط مشتركة جديدة (M2). الخصائص المنطقية حتى يعمل LTR و RTL
 * دون قلب يدوي. لا تُستبدل بها أزرار النيون أو بطاقات الأقسام الحالية.
 */
.pss-btn,
.pss-btn--secondary {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: var(--pss-space-2);
	min-block-size: 2.75rem;
	min-inline-size: 2.75rem;
	padding-block: var(--pss-space-3);
	padding-inline: var(--pss-space-5);
	border-radius: var(--pss-radius-control);
	font-family: var(--pss-font-family);
	font-size: var(--pss-fs-sm);
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0;
	text-align: center;
	text-decoration: none;
	cursor: pointer;
	transition: background-color var(--pss-dur-fast) var(--pss-ease), color var(--pss-dur-fast) var(--pss-ease), box-shadow var(--pss-dur-fast) var(--pss-ease);
}

.pss-btn {
	border: 0;
	background: var(--pss-color-red);
	color: var(--pss-color-surface);
}

.pss-btn:hover,
.pss-btn:focus-visible {
	background: var(--pss-color-red-deep);
	color: var(--pss-color-surface);
}

.pss-btn--secondary {
	border: 1px solid var(--pss-color-navy);
	background: transparent;
	color: var(--pss-color-navy);
}

.pss-btn--secondary:hover,
.pss-btn--secondary:focus-visible {
	background: var(--pss-color-tint);
	color: var(--pss-color-navy);
}

.pss-btn:focus-visible,
.pss-btn--secondary:focus-visible {
	outline: 2px solid var(--pss-color-navy);
	outline-offset: 3px;
}

.pss-card,
.pss-card--secondary {
	background: var(--pss-color-surface);
	color: var(--pss-color-ink);
	border-style: solid;
	border-color: var(--pss-color-line);
	border-width: 1px;
	padding-block: var(--pss-space-5);
	padding-inline: var(--pss-space-5);
}

.pss-card {
	border-radius: var(--pss-radius-card);
	box-shadow: var(--pss-shadow-card);
}

.pss-card--secondary {
	border-radius: var(--pss-radius-card-secondary);
	border-color: rgba(31, 54, 92, 0.08);
	box-shadow: var(--pss-shadow-card-secondary);
}

.pss-link {
	color: var(--pss-color-navy);
	text-decoration: none;
	text-underline-offset: 0.15em;
}

.pss-link:hover,
.pss-link:focus-visible {
	text-decoration: underline;
}

.pss-ltr {
	direction: ltr;
	unicode-bidi: isolate;
}

@media (prefers-reduced-motion: reduce) {
	.pss-btn,
	.pss-btn--secondary {
		transition: none;
	}
}

html[dir="rtl"] {
	--pss-lh-body: 1.85;
	--pss-lh-heading: 1.3;
}

/* Contact map: Leaflet container + bouncing custom PSS pin. */
.pss-google-map-embed {
	position: relative;
	overflow: hidden;
	line-height: 0;
}

.pss-google-map-embed .pss-leaflet-map {
	width: 100%;
	z-index: 0;
	background: #e8e8e8;
}

.pss-google-map-embed .leaflet-marker-icon.pss-leaflet-marker {
	top: 0;
	filter: drop-shadow(0 3px 4px rgba(0, 0, 0, 0.35));
	animation: pss-map-bounce 1.15s ease-in-out infinite;
}

@keyframes pss-map-bounce {
	0%,
	100% {
		top: 0;
	}
	50% {
		top: -14px;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-google-map-embed .leaflet-marker-icon.pss-leaflet-marker {
		animation: none;
	}
}

/* Mobile / tablet: hide the desktop grey menu strip completely. */
@media screen and (max-width: 1150px) {
	.classic-header .header-bar.pss-hdr,
	.classic-header .header-bar.pss-hdr > .navigation,
	.classic-header.bg-behind-menu .header-bar.pss-hdr > .navigation:before {
		display: none !important;
	}

	/* Social icons belong in the side menu, never as black circles on the red bar. */
	.masthead .top-bar .soc-ico,
	.masthead .top-bar .pss-header-soc {
		display: none !important;
	}

	.masthead .mobile-header-bar {
		display: -ms-flexbox !important;
		display: flex !important;
		-ms-flex-wrap: nowrap;
		flex-wrap: nowrap;
		-ms-align-items: center;
		align-items: center;
	}

	.masthead .mobile-header-bar > .mobile-branding {
		-ms-flex: 0 0 auto;
		flex: 0 0 auto;
		-ms-flex-order: 1;
		order: 1 !important;
	}

	.masthead .mobile-header-bar > .mobile-mini-widgets {
		display: contents;
	}

	.masthead .mobile-header-bar .text-area.pss-brand-name {
		-ms-flex: 0 1 auto;
		flex: 0 1 auto;
		-ms-flex-order: 2;
		order: 2 !important;
		margin: 0 0 0 12px !important;
		min-width: 0;
	}

	.masthead .mobile-header-bar .text-area.pss-brand-name p,
	.masthead .mobile-header-bar .text-area.near-logo-first-switch p,
	.masthead .mobile-header-bar .text-area.near-logo-second-switch p {
		margin: 0;
	}

	.masthead .mobile-header-bar .text-area.pss-brand-name span,
	.masthead .mobile-header-bar .text-area.near-logo-first-switch span,
	.masthead .mobile-header-bar .text-area.near-logo-second-switch span {
		font-size: clamp(15px, 2.5vw, 32px) !important;
		line-height: 1.15 !important;
		white-space: nowrap;
	}

	.masthead .mobile-header-bar .near-logo-first-switch:not(.text-area),
	.masthead .mobile-header-bar .near-logo-second-switch:not(.text-area) {
		-ms-flex-order: 5;
		order: 5 !important;
		margin-left: 8px !important;
	}

	.masthead .mobile-header-bar > .mobile-navigation {
		-ms-flex: 0 0 auto;
		flex: 0 0 auto;
		-ms-flex-order: 4;
		order: 4 !important;
		margin-left: auto !important;
	}

	.dt-mobile-header .mobile-mini-widgets-in-menu .pss-header-soc {
		display: -ms-inline-flexbox !important;
		display: inline-flex !important;
		-ms-flex-wrap: wrap;
		flex-wrap: wrap;
		gap: 8px;
		margin: 8px 20px 16px;
	}

	.dt-mobile-header .mobile-mini-widgets-in-menu .pss-header-soc.hide-on-first-switch,
	.dt-mobile-header .mobile-mini-widgets-in-menu .pss-header-soc.show-on-second-switch {
		display: none !important;
	}
}

@media screen and (max-width: 990px) {
	.dt-mobile-header .mobile-mini-widgets-in-menu .pss-header-soc.show-on-second-switch {
		display: -ms-inline-flexbox !important;
		display: inline-flex !important;
	}

	.dt-mobile-header .mobile-mini-widgets-in-menu .pss-header-soc.hide-on-second-switch,
	.dt-mobile-header .mobile-mini-widgets-in-menu .pss-header-soc.show-on-first-switch {
		display: none !important;
	}
}

/*
 * Header icons beside the wordmark: white discs with the brand red,
 * matching the site instead of the solid black circles.
 */
#page .pss-header-soc {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	vertical-align: middle;
}

#page .pss-header-soc a {
	width: 34px;
	height: 34px;
	margin: 0 !important;
	line-height: 34px;
	border-radius: 50%;
	overflow: hidden;
	background: transparent !important;
	box-shadow: none !important;
	transition: none;
}

#page .pss-header-soc a:before,
#page .pss-header-soc a:after {
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: #ffffff !important;
	background-image: none !important;
	opacity: 1 !important;
	box-shadow: inset 0 0 0 1.5px #dd3333, 0 1px 3px rgba(0, 0, 0, 0.06) !important;
	transition: background 0.2s ease, box-shadow 0.2s ease;
}

#page .pss-header-soc .soc-font-icon {
	font-size: 15px;
	line-height: 34px;
	color: #dd3333 !important;
	background: none !important;
}

#page .pss-header-soc a:hover,
#page .pss-header-soc a:focus-visible {
	background: transparent !important;
	box-shadow: none !important;
}

#page .pss-header-soc a:hover:before,
#page .pss-header-soc a:hover:after,
#page .pss-header-soc a:focus-visible:before,
#page .pss-header-soc a:focus-visible:after {
	box-shadow: none !important;
}

#page .pss-header-soc a.facebook:hover:before,
#page .pss-header-soc a.facebook:hover:after,
#page .pss-header-soc a.facebook:focus-visible:before,
#page .pss-header-soc a.facebook:focus-visible:after {
	background: #1877f2 !important;
}

#page .pss-header-soc a.linkedin:hover:before,
#page .pss-header-soc a.linkedin:hover:after,
#page .pss-header-soc a.linkedin:focus-visible:before,
#page .pss-header-soc a.linkedin:focus-visible:after {
	background: #0a66c2 !important;
}

#page .pss-header-soc a.twitter:hover:before,
#page .pss-header-soc a.twitter:hover:after,
#page .pss-header-soc a.twitter:focus-visible:before,
#page .pss-header-soc a.twitter:focus-visible:after {
	background: #111111 !important;
}

#page .pss-header-soc a.you-tube:hover:before,
#page .pss-header-soc a.you-tube:hover:after,
#page .pss-header-soc a.you-tube:focus-visible:before,
#page .pss-header-soc a.you-tube:focus-visible:after {
	background: #dd3333 !important;
}

#page .pss-header-soc a.mail:hover:before,
#page .pss-header-soc a.mail:hover:after,
#page .pss-header-soc a.mail:focus-visible:before,
#page .pss-header-soc a.mail:focus-visible:after {
	background: #e8870b !important;
}

#page .pss-header-soc a:hover .soc-font-icon,
#page .pss-header-soc a:focus-visible .soc-font-icon,
#page .pss-header-soc a:hover .soc-font-icon:before,
#page .pss-header-soc a:focus-visible .soc-font-icon:before {
	color: #ffffff !important;
}

#page .masthead .branding .wc-shopping-cart,
#page .masthead .mobile-header-bar .wc-shopping-cart,
#page .dt-mobile-header .wc-shopping-cart {
	display: inline-flex;
	align-items: center;
	margin-left: 8px;
	vertical-align: middle;
}

#page .masthead .branding .wc-ico-cart,
#page .masthead .mobile-header-bar .wc-ico-cart,
#page .dt-mobile-header .wc-ico-cart {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	position: relative;
	width: 34px;
	height: 34px;
	padding: 0;
	border-radius: 50%;
	background: #ffffff !important;
	box-shadow: inset 0 0 0 1.5px #dd3333, 0 1px 3px rgba(0, 0, 0, 0.06);
	color: #dd3333 !important;
	font-size: 0;
	line-height: 1;
	text-decoration: none;
	overflow: visible;
	transition: background 0.2s ease, box-shadow 0.2s ease;
}

#page .masthead .branding .wc-ico-cart i,
#page .masthead .mobile-header-bar .wc-ico-cart i,
#page .dt-mobile-header .wc-ico-cart i,
#page .masthead .branding .wc-ico-cart i:before,
#page .masthead .mobile-header-bar .wc-ico-cart i:before,
#page .dt-mobile-header .wc-ico-cart i:before {
	color: #dd3333 !important;
	font-size: 16px;
	line-height: 1;
}

#page .masthead .branding .wc-ico-cart:hover,
#page .masthead .mobile-header-bar .wc-ico-cart:hover,
#page .dt-mobile-header .wc-ico-cart:hover,
#page .masthead .branding .wc-ico-cart:focus-visible,
#page .masthead .mobile-header-bar .wc-ico-cart:focus-visible,
#page .dt-mobile-header .wc-ico-cart:focus-visible {
	background: #dd3333 !important;
	box-shadow: 0 6px 14px rgba(221, 51, 51, 0.28);
	outline: none;
}

#page .masthead .branding .wc-ico-cart:hover i,
#page .masthead .mobile-header-bar .wc-ico-cart:hover i,
#page .dt-mobile-header .wc-ico-cart:hover i,
#page .masthead .branding .wc-ico-cart:hover i:before,
#page .masthead .mobile-header-bar .wc-ico-cart:hover i:before,
#page .dt-mobile-header .wc-ico-cart:hover i:before,
#page .masthead .branding .wc-ico-cart:focus-visible i,
#page .masthead .mobile-header-bar .wc-ico-cart:focus-visible i,
#page .dt-mobile-header .wc-ico-cart:focus-visible i,
#page .masthead .branding .wc-ico-cart:focus-visible i:before,
#page .masthead .mobile-header-bar .wc-ico-cart:focus-visible i:before,
#page .dt-mobile-header .wc-ico-cart:focus-visible i:before {
	color: #ffffff !important;
}

#page .masthead .branding .wc-ico-cart > .counter:not(.hidden),
#page .masthead .mobile-header-bar .wc-ico-cart > .counter:not(.hidden),
#page .dt-mobile-header .wc-ico-cart > .counter:not(.hidden) {
	position: absolute;
	top: -5px;
	right: -5px;
	min-width: 16px;
	height: 16px;
	padding: 0 4px;
	border-radius: 99px;
	background: #1a1a1a !important;
	color: #fff !important;
	font-size: 10px;
	line-height: 16px;
	font-weight: 700;
}

/*
 * Site-wide button: solid red, white text, and a small arrow on links.
 * Hover deepens the red and nudges the arrow; nothing else moves.
 */
:is(#page, #phantom) :is(a.dt-btn, button.dt-btn, button.wpcf7-submit, input.wpcf7-submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button) {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 0.6rem;
	width: auto !important;
	min-width: 0 !important;
	height: auto !important;
	min-height: 3rem !important;
	padding: 0.8rem 1.5rem !important;
	box-sizing: border-box;
	overflow: visible;
	color: #fff !important;
	background: var(--pss-color-red) !important;
	border: 0 !important;
	border-radius: 0.5rem !important;
	box-shadow: 0 1px 2px rgba(13, 28, 48, 0.12) !important;
	font-family: var(--pss-font-family) !important;
	font-size: 0.95rem !important;
	font-weight: 700 !important;
	line-height: 1.2 !important;
	letter-spacing: 0.01em !important;
	text-align: center;
	text-decoration: none !important;
	text-transform: none !important;
	cursor: pointer;
	transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

:is(#page, #phantom) :is(a.dt-btn, button.dt-btn, button.wpcf7-submit, .woocommerce a.button, .woocommerce button.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button)::before,
:is(#page, #phantom) :is(button.dt-btn, button.wpcf7-submit, .woocommerce button.button)::after,
:is(#page, #phantom) :is(a.dt-btn, button.dt-btn, button.wpcf7-submit, .woocommerce a.button, .woocommerce button.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button) > span::before,
:is(#page, #phantom) :is(a.dt-btn, button.dt-btn, button.wpcf7-submit, .woocommerce a.button, .woocommerce button.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button) > span::after {
	content: none !important;
}

:is(#page, #phantom) :is(a.dt-btn, button.dt-btn, button.wpcf7-submit, .woocommerce a.button, .woocommerce button.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button) > span {
	color: inherit !important;
	background: none !important;
}

:is(#page, #phantom) :is(a.dt-btn, .woocommerce a.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button)::after {
	content: "" !important;
	position: static;
	flex: none;
	width: 1rem;
	height: 1rem;
	background: currentColor !important;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	transition: transform 0.2s ease;
}

[dir="rtl"] :is(#page, #phantom) :is(a.dt-btn, .woocommerce a.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button)::after {
	transform: scaleX(-1);
}

:is(#page, #phantom) :is(a.dt-btn, button.dt-btn, button.wpcf7-submit, input.wpcf7-submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button):hover {
	color: #fff !important;
	background: var(--pss-color-red-deep) !important;
	box-shadow: 0 6px 16px rgba(185, 28, 28, 0.24) !important;
	text-decoration: none !important;
}

:is(#page, #phantom) :is(a.dt-btn, button.dt-btn, button.wpcf7-submit, input.wpcf7-submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button):focus-visible {
	color: #fff !important;
	background: var(--pss-color-red-deep) !important;
	outline: 2px solid var(--pss-color-red) !important;
	outline-offset: 3px;
	text-decoration: none !important;
}

:is(#page, #phantom) :is(a.dt-btn, .woocommerce a.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button):is(:hover, :focus-visible)::after {
	transform: translateX(3px);
}

[dir="rtl"] :is(#page, #phantom) :is(a.dt-btn, .woocommerce a.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button):is(:hover, :focus-visible)::after {
	transform: scaleX(-1) translateX(3px);
}

:is(#page, #phantom) :is(a.dt-btn, button.dt-btn, button.wpcf7-submit, input.wpcf7-submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button):active {
	background: var(--pss-color-red-deep) !important;
	box-shadow: none !important;
}

@media (prefers-reduced-motion: reduce) {
	:is(#page, #phantom) :is(a.dt-btn, button.dt-btn, button.wpcf7-submit, input.wpcf7-submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button),
	:is(#page, #phantom) :is(a.dt-btn, .woocommerce a.button, a.button.view-cart, a.button.checkout, a.add_to_cart_button)::after {
		transition: none;
	}
}

/* =========================================================
   CONTACT PAGE: remove #main top/bottom padding and
   side padding so the hero stretches edge-to-edge
   ========================================================= */
.page-id-1606 #main {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

.page-id-1606 #main .wf-wrap {
	padding-left: 0 !important;
	padding-right: 0 !important;
	overflow: hidden;
}

body.page-id-1113 .page-title,
body.page-template-page-about-php .page-title,
body.page-id-7 .page-title {
	display: none;
}

body.page-id-1113 #main,
body.page-template-page-about-php #main,
body.page-id-7 #main {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

body.page-id-1113 #main .wf-wrap,
body.page-template-page-about-php #main .wf-wrap,
body.page-id-7 #main .wf-wrap {
	padding-left: 0 !important;
	padding-right: 0 !important;
	overflow: hidden;
}

/* =========================================================
   CONTACT PAGE
   Full-bleed clipped banner, then the same section rhythm
   as the reference contact layout, in PSS red and navy.
   ========================================================= */

body.page-id-1606 #main > .wf-wrap,
body.page-id-1606 #main > .wf-wrap > .wf-container-main,
body.page-id-1606 .pss-contact-page,
body.page-id-1113 #main > .wf-wrap,
body.page-id-1113 #main > .wf-wrap > .wf-container-main,
body.page-id-1113 .pss-company-page,
body.page-template-page-about-php #main > .wf-wrap,
body.page-template-page-about-php #main > .wf-wrap > .wf-container-main,
body.page-template-page-about-php .pss-company-page,
body.page-id-7 #main > .wf-wrap,
body.page-id-7 #main > .wf-wrap > .wf-container-main,
body.page-id-7 .pss-company-page {
	width: 100%;
	max-width: none;
	overflow: visible;
}

.pss-contact-page {
	--pss-contact-navy: #1f365c;
	--pss-contact-red: #dd3333;
	--pss-contact-text: #242629;
	--pss-contact-muted: #5c6570;
	background: #fff;
	color: var(--pss-contact-text);
}

.pss-contact-page .pss-container {
	width: min(84rem, calc(100% - 2 * clamp(1.1rem, 3vw, 1.5rem)));
	margin-inline: auto;
}

.pss-ch {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	box-sizing: border-box;
	display: flex;
	align-items: center;
	padding-block: clamp(2rem, 3.4vw, 2.9rem);
	color: #fff;
	background:
		radial-gradient(55% 140% at 82% 50%, rgba(221, 51, 51, 0.16), transparent 62%),
		linear-gradient(115deg, #0d1c30 0%, #142844 52%, var(--pss-color-navy) 100%);
}

/* Blueprint grid, faded out behind the title */
.pss-ch::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.055) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.055) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: linear-gradient(90deg, transparent 8%, #000 60%);
	mask-image: linear-gradient(90deg, transparent 8%, #000 60%);
}

.pss-ch::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 3px;
	background: linear-gradient(90deg, var(--pss-color-red) 0, var(--pss-color-red) min(14rem, 30%), rgba(255, 255, 255, 0.12) min(14rem, 30%));
}

/* One-line diagram (PSS power / security schematic) */
.pss-ch__sld {
	position: absolute;
	z-index: 0;
	inset-block: 1rem;
	inset-inline: auto clamp(1rem, 4vw, 4rem);
	width: 48%;
	height: calc(100% - 2rem);
	pointer-events: none;
	opacity: 0.95;
}

/* Load sequence: power sources, traces into the hub, hub, traces out, security systems, then a steady flow. */
.pss-sys__trace {
	fill: none;
	stroke-width: 1.4;
	stroke-linecap: round;
	stroke-dasharray: 1;
	stroke-dashoffset: 1;
	animation: pss-sys-draw 0.8s cubic-bezier(0.33, 1, 0.68, 1) forwards;
	animation-delay: calc(0.45s + var(--i) * 0.12s);
}

.pss-sys__trace--in {
	stroke: rgba(221, 51, 51, 0.6);
}

.pss-sys__trace--out {
	stroke: rgba(255, 255, 255, 0.3);
	animation-delay: calc(1.6s + var(--i) * 0.12s);
}

@keyframes pss-sys-draw {
	to {
		stroke-dashoffset: 0;
	}
}

.pss-sys__pulse {
	fill: none;
	stroke-width: 3;
	stroke-linecap: round;
	stroke-dasharray: 0.1 99.9;
	animation: pss-sys-flow 3s linear infinite both;
	animation-delay: calc(2.8s + var(--i) * 0.5s);
}

.pss-sys__pulse--in {
	stroke: #ff6b6b;
	filter: drop-shadow(0 0 3px rgba(255, 90, 90, 0.9));
}

.pss-sys__pulse--out {
	stroke: #fff;
	filter: drop-shadow(0 0 3px rgba(255, 255, 255, 0.8));
}

@keyframes pss-sys-flow {
	0% {
		stroke-dashoffset: 0;
		opacity: 0;
	}
	10%,
	88% {
		opacity: 1;
	}
	100% {
		stroke-dashoffset: -100;
		opacity: 0;
	}
}

.pss-sys__joint {
	opacity: 0;
	animation: pss-sys-fade 0.3s ease-out forwards;
}

.pss-sys__joint--in {
	fill: var(--pss-color-red);
	animation-delay: 1.1s;
}

.pss-sys__joint--out {
	fill: #fff;
	animation-delay: 1.6s;
}

@keyframes pss-sys-fade {
	to {
		opacity: 1;
	}
}

.pss-sys__node,
.pss-sys__hub {
	opacity: 0;
	transform: scale(0.7);
	animation: pss-sys-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}

.pss-sys__node--in {
	animation-delay: calc(0.15s + var(--i) * 0.1s);
}

.pss-sys__node--out {
	animation-delay: calc(2.05s + var(--i) * 0.1s);
}

.pss-sys__hub {
	transform: scale(0.8);
	animation-duration: 0.6s;
	animation-delay: 1.15s;
}

@keyframes pss-sys-pop {
	to {
		opacity: 1;
		transform: scale(1);
	}
}

.pss-sys__disc {
	fill: rgba(11, 24, 43, 0.92);
	stroke: rgba(255, 255, 255, 0.28);
	stroke-width: 1.2;
}

.pss-sys__node--in .pss-sys__disc {
	stroke: rgba(221, 51, 51, 0.6);
}

.pss-sys__icon {
	fill: none;
	stroke: rgba(255, 255, 255, 0.9);
	stroke-width: 1.4;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.pss-sys__led {
	fill: #ff5a5a;
	opacity: 0.15;
	filter: drop-shadow(0 0 2px rgba(255, 90, 90, 0.9));
	animation: pss-sys-fade 0.4s ease-out forwards;
	animation-delay: calc(1.2s + var(--i) * 0.12s);
}

.pss-sys__node--out .pss-sys__led {
	animation-delay: calc(2.4s + var(--i) * 0.1s);
}

.pss-sys__label {
	fill: rgba(255, 255, 255, 0.62);
	font-family: inherit;
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.02em;
	text-anchor: middle;
}

.pss-sys__label--hub {
	fill: rgba(255, 255, 255, 0.88);
	font-weight: 700;
}

.pss-sys__hub-core {
	fill: rgba(221, 51, 51, 0.16);
	stroke: var(--pss-color-red);
	stroke-width: 1.6;
	stroke-linejoin: round;
}

.pss-sys__hub-bolt {
	fill: #fff;
}

.pss-sys__hub-ring {
	fill: none;
	stroke: rgba(255, 255, 255, 0.28);
	stroke-dasharray: 2 6;
	animation: pss-sys-spin 40s linear infinite;
}

@keyframes pss-sys-spin {
	to {
		transform: rotate(-360deg);
	}
}

.pss-sys__hub-glow {
	opacity: 0.75;
	animation: pss-sys-breathe 4.5s ease-in-out 1.8s infinite;
}

@keyframes pss-sys-breathe {
	50% {
		opacity: 0.35;
	}
}

@media (max-width: 767px) {
	.pss-ch__sld {
		display: none;
	}

	.pss-ch .pss-ch__subtitle {
		max-width: none;
	}
}

body.pss-blog-library .page-title {
	display: none;
}

body.pss-blog-library #main > .wf-wrap,
body.pss-blog-library .pss-ch__inner {
	width: min(84rem, calc(100vw - 2 * clamp(1.1rem, 3vw, 1.5rem)));
	max-width: none;
	margin-left: calc((100vw - min(84rem, calc(100vw - 2 * clamp(1.1rem, 3vw, 1.5rem)))) / 2);
	margin-right: 0;
	padding-left: 0;
	padding-right: 0;
	box-sizing: border-box;
}

/* =========================================================
   BLOG GUIDE LIBRARY (D-031): search in the hero, topic board,
   latest guide, ruled guide list, ask band. Index, categories,
   tags, and the blog search share it (body.pss-blog-library).
   ========================================================= */
body.pss-blog-library #main {
	padding-top: 0 !important;
	padding-bottom: clamp(2.25rem, 4.5vw, 3.75rem) !important;
}

body.pss-blog-library #content.pss-blog-index {
	width: 100%;
	max-width: none;
	padding: 0;
	background: transparent;
	--pss-in-dir: 1;
}

[dir="rtl"] body.pss-blog-library #content.pss-blog-index {
	--pss-in-dir: -1;
}

.pss-bl :is(ul, ol) {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pss-bl :is(ul, ol) > li::before,
.pss-bl :is(ul, ol) > li::after {
	content: none !important;
	display: none !important;
}

.pss-bl [hidden] {
	display: none !important;
}

/* Search field in the hero, in the slot the subtitle uses on other pages. */
.pss-ch .pss-bl-search {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	width: min(32rem, 100%);
	margin: 0;
	padding: 0 0.3rem 0 0.85rem;
	box-sizing: border-box;
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.07);
	transition: border-color 0.2s ease, background-color 0.2s ease;
}

.pss-ch .pss-bl-search:focus-within {
	border-color: var(--pss-color-red);
	background: rgba(255, 255, 255, 0.1);
}

.pss-ch .pss-bl-search svg {
	flex: none;
	width: 18px;
	height: 18px;
	opacity: 0.75;
}

.pss-ch .pss-bl-search input[type="search"] {
	flex: 1;
	min-width: 0;
	height: auto;
	margin: 0;
	padding: 0.22rem 0;
	line-height: 1.35;
	color: #fff;
	font: inherit;
	font-size: 0.95rem;
	border: 0;
	border-radius: 0;
	background: none;
	box-shadow: none;
	outline: none;
}

.pss-ch .pss-bl-search input[type="search"]::placeholder {
	color: rgba(255, 255, 255, 0.6);
	opacity: 1;
}

.pss-ch .pss-bl-search input[type="search"]::-webkit-search-cancel-button {
	filter: invert(1);
}

/* The search field is a little taller than one subtitle line, so the index
   banner gives that difference back and lines up with About and Contact. */
@media (min-width: 1000px) {
	.pss-blog-hero--search {
		padding-block: calc(clamp(2rem, 3.4vw, 2.9rem) - 0.4rem);
	}
}

.pss-ch .pss-bl-search kbd {
	padding: 0.1rem 0.45rem;
	color: rgba(255, 255, 255, 0.7);
	font: inherit;
	font-size: 0.72rem;
	border: 1px solid rgba(255, 255, 255, 0.25);
	border-radius: 4px;
	background: none;
	box-shadow: none;
}

/* Topic board: the disciplines on one red line, every service a link */
.pss-bl-board {
	padding: 1.6rem clamp(1.1rem, 2.5vw, 2rem) 1.75rem;
	border: 1px solid var(--pss-color-line);
	border-top: 0;
	background-color: var(--pss-color-tint);
	background-image:
		linear-gradient(rgba(31, 54, 92, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(31, 54, 92, 0.045) 1px, transparent 1px);
	background-size: 44px 44px;
}

.pss-bl-board__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	margin-bottom: 1.15rem;
}

.pss-bl .pss-bl-board__title {
	margin: 0;
	color: var(--pss-color-navy);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.3;
}

.pss-bl-all {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.4rem 0.5rem 0.4rem 0.95rem;
	color: var(--pss-color-navy);
	font-size: 0.85rem;
	font-weight: 700;
	white-space: nowrap;
	text-decoration: none;
	border: 1px solid var(--pss-color-line);
	border-radius: 999px;
	background: #fff;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease;
}

#page .pss-bl-all b {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 1.45rem;
	height: 1.45rem;
	margin: 0;
	padding: 0 0.28rem;
	font-size: 0.74rem;
	font-weight: 700;
	line-height: 1;
	border-radius: 999px;
	background: var(--pss-color-red-wash);
	color: var(--pss-color-red);
	box-sizing: border-box;
}

.pss-bl-all:hover,
.pss-bl-all:focus-visible {
	color: var(--pss-color-navy);
	border-color: var(--pss-color-red);
}

.pss-bl-all[aria-current] {
	color: #fff;
	border-color: var(--pss-color-navy);
	background: var(--pss-color-navy);
}

.pss-bl-all[aria-current] b {
	color: #fff;
	background: var(--pss-color-red);
}

.pss-bl-board__grid {
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 4fr) minmax(0, 3.1fr) minmax(0, 7fr);
	gap: 2rem;
}

/* The line that ties the three disciplines together, like the Home map. */
.pss-bl-board__grid::before {
	content: "";
	position: absolute;
	inset-inline: 22px 0;
	top: 21px;
	height: 2px;
	background: linear-gradient(90deg, var(--pss-color-red), rgba(221, 51, 51, 0.6) 60%, rgba(221, 51, 51, 0.15));
	transform-origin: left;
}

[dir="rtl"] .pss-bl-board__grid::before {
	background: linear-gradient(270deg, var(--pss-color-red), rgba(221, 51, 51, 0.6) 60%, rgba(221, 51, 51, 0.15));
	transform-origin: right;
}

.pss-bl-disc {
	position: relative;
}

.pss-bl-disc__top {
	display: flex;
	align-items: center;
	gap: 0.7rem;
	margin-bottom: 0.9rem;
}

.pss-bl-disc__icon {
	position: relative;
	z-index: 1;
	display: grid;
	place-items: center;
	flex: none;
	width: 44px;
	height: 44px;
	color: #fff;
	border: 2px solid var(--pss-color-red);
	border-radius: 50%;
	background: var(--pss-color-navy);
	box-shadow: 0 0 0 5px var(--pss-color-tint);
	box-sizing: border-box;
}

.pss-bl-disc__icon svg {
	width: 20px;
	height: 20px;
}

.pss-bl-disc__name {
	position: relative;
	z-index: 1;
	margin-inline-start: -0.5rem;
	padding-inline: 0.5rem 0.6rem;
	color: var(--pss-color-navy);
	font-size: 0.98rem;
	font-weight: 700;
	line-height: 1.2;
	background: var(--pss-color-tint);
}

.pss-bl-disc__name small {
	display: block;
	margin-top: 0.15rem;
	color: var(--pss-color-muted);
	font-size: 0.78rem;
	font-weight: 400;
}

.pss-bl .pss-bl-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
}

.pss-bl-chips li {
	margin: 0;
}

.pss-bl-chip {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	padding: 0.5rem 0.55rem 0.5rem 0.75rem;
	color: var(--pss-color-muted);
	font-size: 0.84rem;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	border: 1px solid var(--pss-color-line);
	border-radius: 999px;
	background: #fff;
	transition: border-color 0.2s ease, color 0.2s ease, background-color 0.2s ease, transform 0.2s ease;
}

.pss-bl-chip b {
	display: grid;
	place-items: center;
	min-width: 1.35rem;
	height: 1.35rem;
	font-size: 0.74rem;
	border-radius: 999px;
	color: #8a97ab;
	background: #eef1f5;
}

span.pss-bl-chip {
	opacity: 0.62;
	cursor: default;
}

.pss-bl-chip.is-lit {
	color: var(--pss-color-navy);
	font-weight: 700;
	border-color: rgba(221, 51, 51, 0.45);
}

.pss-bl-chip.is-lit b {
	color: var(--pss-color-red);
	background: var(--pss-color-red-wash);
}

/* A service with guides carries a live status light (the page's one loop). */
.pss-bl-chip.is-lit::before {
	content: "";
	flex: none;
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: var(--pss-color-red);
	animation: pss-bl-live 2.4s ease-out infinite;
}

@keyframes pss-bl-live {
	0% {
		box-shadow: 0 0 0 0 rgba(221, 51, 51, 0.5);
	}

	70%,
	100% {
		box-shadow: 0 0 0 7px rgba(221, 51, 51, 0);
	}
}

.pss-bl-chip.is-lit:hover,
.pss-bl-chip.is-lit:focus-visible {
	color: var(--pss-color-navy);
	border-color: var(--pss-color-red);
	transform: translateY(-1px);
}

.pss-bl-chip.is-lit[aria-current] {
	color: #fff;
	border-color: var(--pss-color-navy);
	background: var(--pss-color-navy);
}

.pss-bl-chip.is-lit[aria-current] b {
	color: #fff;
	background: var(--pss-color-red);
}

.pss-bl-chip.is-lit[aria-current]::before {
	background: #fff;
}

.pss-bl-board__grid.is-armed:not(.is-live)::before {
	transform: scaleX(0);
}

.pss-bl-board__grid.is-armed:not(.is-live) .pss-bl-disc {
	opacity: 0;
}

.pss-bl-board__grid.is-live::before {
	animation: pss-in-draw-x 0.8s cubic-bezier(0.33, 1, 0.68, 1) backwards;
}

.pss-bl-board__grid.is-live .pss-bl-disc {
	animation: pss-in-rise 0.5s ease-out backwards;
	animation-delay: calc(0.15s + var(--i) * 0.09s);
}

/* Latest guide */
.pss-bl-feat {
	display: grid;
	grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
	gap: clamp(1.75rem, 4vw, 3.5rem);
	align-items: center;
	padding-block: clamp(2.25rem, 4.5vw, 3.75rem) 0;
}

.pss-bl-feat__media {
	position: relative;
	display: block;
	margin: 8px;
}

.pss-bl-feat__frame {
	position: relative;
	display: block;
	overflow: hidden;
	aspect-ratio: 16 / 9;
	border-radius: 6px;
	background: #0d1c30;
}

.pss-bl .pss-bl-feat__frame img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1), filter 0.5s ease;
}

/* Glass sweep on hover, as on the Services photos (D-029). */
.pss-bl-feat__frame::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(115deg, transparent 35%, rgba(255, 255, 255, 0.28) 50%, transparent 65%);
	transform: translateX(-110%);
	transition: transform 0.8s ease;
	pointer-events: none;
}

.pss-bl-feat__media:hover img,
.pss-bl-feat:focus-within .pss-bl-feat__frame img {
	transform: scale(1.035);
	filter: brightness(1.06);
}

.pss-bl-feat__media:hover .pss-bl-feat__frame::after {
	transform: translateX(110%);
}

.pss-bl-feat__media i {
	position: absolute;
	z-index: 1;
	width: 22px;
	height: 22px;
	border: 2px solid var(--pss-color-red);
	pointer-events: none;
	transition: width 0.3s ease, height 0.3s ease;
}

.pss-bl-feat__media i:nth-of-type(1) { top: -8px; left: -8px; border-right: 0; border-bottom: 0; }
.pss-bl-feat__media i:nth-of-type(2) { top: -8px; right: -8px; border-left: 0; border-bottom: 0; }
.pss-bl-feat__media i:nth-of-type(3) { bottom: -8px; left: -8px; border-right: 0; border-top: 0; }
.pss-bl-feat__media i:nth-of-type(4) { bottom: -8px; right: -8px; border-left: 0; border-top: 0; }

.pss-bl-feat__media:hover i {
	width: 30px;
	height: 30px;
}

.pss-bl .pss-bl-feat__kicker {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 0.8rem;
	color: var(--pss-color-red);
	font-size: 0.8rem;
	font-weight: 700;
}

.pss-bl-feat__kicker::before {
	content: "";
	width: 28px;
	height: 2px;
	background: var(--pss-color-red);
}

.pss-bl-feat__kicker span {
	color: var(--pss-color-muted);
	font-weight: 400;
}

.pss-bl .pss-bl-feat__title {
	margin: 0 0 0.9rem;
	color: var(--pss-color-navy);
	font-size: clamp(1.6rem, 2.6vw, 2.3rem);
	line-height: 1.15;
}

.pss-bl-feat__title a {
	color: inherit;
	text-decoration: none;
	background: linear-gradient(var(--pss-color-red), var(--pss-color-red)) 0 100% / 0 2px no-repeat;
	transition: background-size 0.35s ease;
}

[dir="rtl"] .pss-bl-feat__title a {
	background-position: 100% 100%;
}

.pss-bl-feat__title a:hover,
.pss-bl-feat__title a:focus-visible {
	color: inherit;
	background-size: 100% 2px;
}

.pss-bl .pss-bl-feat__excerpt {
	max-width: 34rem;
	margin: 0 0 1.2rem;
	color: var(--pss-color-muted);
	font-size: 1.02rem;
	line-height: 1.65;
}

.pss-bl .pss-bl-feat__tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin: 0 0 1.4rem;
}

.pss-bl-feat__tags li {
	margin: 0;
	padding: 0.3rem 0.55rem;
	color: var(--pss-color-navy);
	font-size: 0.78rem;
	line-height: 1.2;
	border: 1px solid var(--pss-color-line);
	border-radius: 4px;
	background: #fff;
}

.pss-bl-feat__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.4rem 1.1rem;
	margin-bottom: 1.4rem;
	color: var(--pss-color-muted);
	font-size: 0.84rem;
}

.pss-bl-feat__meta span {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
}

.pss-bl-feat__meta svg {
	width: 15px;
	height: 15px;
	fill: none;
	stroke: var(--pss-color-red);
	stroke-width: 1.8;
	stroke-linecap: round;
}

.pss-bl .pss-bl-feat__meta img {
	width: 26px !important;
	height: 26px !important;
	max-width: none;
	border-radius: 50%;
}

.pss-bl-read {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--pss-color-red);
	font-weight: 700;
	text-decoration: none;
}

.pss-bl-read:hover,
.pss-bl-read:focus-visible {
	color: var(--pss-color-red-deep);
}

.pss-bl-read svg {
	width: 16px;
	height: 16px;
	transition: transform 0.25s ease;
}

.pss-bl-read:hover svg,
.pss-bl-read:focus-visible svg {
	transform: translateX(calc(var(--pss-in-dir) * 4px));
}

[dir="rtl"] .pss-bl :is(.pss-bl-read, .pss-bl-row__go) svg {
	scale: -1 1;
}

.pss-bl-feat__media.is-armed:not(.is-live) {
	clip-path: inset(0 100% 0 0);
}

[dir="rtl"] .pss-bl-feat__media.is-armed:not(.is-live) {
	clip-path: inset(0 0 0 100%);
}

.pss-bl-feat__media.is-live {
	animation: pss-in-wipe 0.8s cubic-bezier(0.2, 0.7, 0.2, 1) backwards;
}

[dir="rtl"] .pss-bl-feat__media.is-live {
	animation-name: pss-in-wipe-rtl;
}

.pss-bl-feat__text.is-armed:not(.is-live) > * {
	opacity: 0;
}

.pss-bl-feat__text.is-live > * {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-bl-feat__text.is-live > :nth-child(2) { animation-delay: 0.07s; }
.pss-bl-feat__text.is-live > :nth-child(3) { animation-delay: 0.14s; }
.pss-bl-feat__text.is-live > :nth-child(n + 4) { animation-delay: 0.21s; }

/* Guide list: ruled rows, no cards */
.pss-bl-list {
	padding-block: clamp(2.25rem, 4.5vw, 3.75rem);
}

.pss-bl-list__bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding-bottom: 0.75rem;
	border-bottom: 2px solid var(--pss-color-navy);
}

.pss-bl .pss-bl-list__title {
	margin: 0;
	color: var(--pss-color-navy);
	font-size: 1.2rem;
	line-height: 1.3;
}

.pss-bl-list__title small {
	margin-inline-start: 0.4rem;
	color: var(--pss-color-muted);
	font-size: 0.95rem;
	font-weight: 400;
}

.pss-bl-sort {
	display: flex;
	gap: 0.25rem;
}

.pss-bl-sort button {
	padding: 0.35rem 0.65rem;
	color: var(--pss-color-muted);
	font: inherit;
	font-size: 0.84rem;
	line-height: 1.2;
	border: 0;
	border-radius: 4px;
	background: none;
	box-shadow: none;
	cursor: pointer;
}

.pss-bl-sort button:hover,
.pss-bl-sort button:focus-visible {
	color: var(--pss-color-navy);
}

.pss-bl-sort button[aria-pressed="true"] {
	color: var(--pss-color-navy);
	font-weight: 700;
	background: var(--pss-color-tint);
}

.pss-bl-row {
	position: relative;
	display: grid;
	grid-template-columns: 11rem minmax(0, 1fr) 9rem 8.5rem;
	gap: 1.5rem;
	align-items: center;
	margin: 0;
	padding-block: 1.35rem;
	border-bottom: 1px solid var(--pss-color-line);
}

/* The underline draws across the row on hover. */
.pss-bl-row::after {
	content: "" !important;
	display: block !important;
	position: absolute;
	inset-inline-start: 0;
	bottom: -1px;
	width: 100%;
	height: 2px;
	background: var(--pss-color-red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.45s cubic-bezier(0.2, 0.7, 0.2, 1);
}

[dir="rtl"] .pss-bl-row::after {
	transform-origin: right;
}

.pss-bl-row:hover::after,
.pss-bl-row:focus-within::after {
	transform: scaleX(1);
}

.pss-bl-row__topic {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	color: var(--pss-color-red);
	font-size: 0.8rem;
	font-weight: 700;
	line-height: 1.3;
}

.pss-bl-row__topic::before {
	content: "";
	flex: none;
	width: 8px;
	height: 8px;
	border: 2px solid var(--pss-color-red);
	border-radius: 50%;
}

.pss-bl .pss-bl-row__title {
	margin: 0 0 0.35rem;
	font-size: 1.12rem;
	line-height: 1.3;
}

.pss-bl-row__title a {
	color: var(--pss-color-navy);
	text-decoration: none;
	outline: none;
	transition: color 0.2s ease;
}

/* The whole row opens the guide. */
.pss-bl-row__title a::before {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.pss-bl-row:hover .pss-bl-row__title a,
.pss-bl-row__title a:focus-visible {
	color: var(--pss-color-red);
}

.pss-bl-row:has(a:focus-visible) {
	outline: 2px solid var(--pss-color-red);
	outline-offset: 4px;
}

.pss-bl-row mark {
	padding: 0 0.1em;
	color: inherit;
	border-radius: 2px;
	background: rgba(221, 51, 51, 0.14);
}

.pss-bl .pss-bl-row__text p {
	margin: 0;
	color: var(--pss-color-muted);
	font-size: 0.92rem;
	line-height: 1.55;
}

.pss-bl-row__meta {
	color: var(--pss-color-muted);
	font-size: 0.82rem;
	line-height: 1.7;
}

.pss-bl-row__meta strong {
	display: block;
	color: var(--pss-color-navy);
}

.pss-bl-row__thumb {
	position: relative;
	overflow: hidden;
	aspect-ratio: 16 / 10;
	border-radius: 5px;
	background: linear-gradient(135deg, var(--pss-color-navy), #0d1c30);
}

.pss-bl .pss-bl-row__thumb img {
	display: block;
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
	filter: grayscale(0.85) brightness(0.8);
	transform: scale(1.06);
	transition: filter 0.45s ease, transform 0.6s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.pss-bl-row:hover .pss-bl-row__thumb img,
.pss-bl-row:focus-within .pss-bl-row__thumb img {
	filter: none;
	transform: scale(1);
}

.pss-bl-row__go {
	position: absolute;
	inset-inline-end: 0.5rem;
	bottom: 0.5rem;
	display: grid;
	place-items: center;
	width: 30px;
	height: 30px;
	color: #fff;
	border-radius: 50%;
	background: var(--pss-color-red);
	opacity: 0;
	transform: translateX(calc(var(--pss-in-dir) * -6px));
	transition: opacity 0.3s ease, transform 0.3s ease;
}

.pss-bl-row__go svg {
	width: 15px;
	height: 15px;
}

.pss-bl-row:hover .pss-bl-row__go,
.pss-bl-row:focus-within .pss-bl-row__go {
	opacity: 1;
	transform: none;
}

.pss-bl-empty {
	padding: 1.75rem 0 0.25rem;
}

.pss-bl .pss-bl-empty p {
	margin: 0;
	color: var(--pss-color-muted);
	line-height: 1.6;
}

.pss-bl-empty strong {
	display: block;
	margin-bottom: 0.3rem;
	color: var(--pss-color-navy);
	font-size: 1.1rem;
}

.pss-bl-empty a {
	color: var(--pss-color-red);
	font-weight: 700;
}

.pss-bl .pss-blog-pages {
	margin-top: 1.8rem;
}

/* Ask band */
.pss-bl-ask {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	gap: 2rem;
	align-items: center;
	padding: clamp(2rem, 4vw, 3rem) clamp(1.25rem, 3vw, 2.5rem);
	color: #fff;
	border-radius: 6px;
	background: linear-gradient(115deg, #0d1c30 0%, #142844 52%, var(--pss-color-navy) 100%);
}

.pss-bl-feat:not([hidden]) ~ .pss-bl-list[hidden] + .pss-bl-ask {
	margin-top: clamp(2.25rem, 4.5vw, 3.75rem);
}

.pss-bl-ask::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
	background-size: 44px 44px;
}

.pss-bl-ask::after {
	content: "";
	position: absolute;
	inset: auto 0 0;
	height: 3px;
	background: linear-gradient(90deg, var(--pss-color-red) 0, var(--pss-color-red) min(14rem, 30%), rgba(255, 255, 255, 0.12) min(14rem, 30%));
}

.pss-bl .pss-bl-ask__title {
	margin: 0 0 0.45rem;
	color: #fff;
	font-size: clamp(1.35rem, 2.2vw, 1.8rem);
	line-height: 1.2;
}

.pss-bl .pss-bl-ask__text p {
	max-width: 38rem;
	margin: 0;
	color: rgba(255, 255, 255, 0.75);
	line-height: 1.6;
}

.pss-bl .pss-bl-ask__topics {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin-top: 1rem;
}

.pss-bl-ask__topics li {
	margin: 0;
}

.pss-bl-ask__topics a {
	display: inline-block;
	padding: 0.35rem 0.75rem;
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.8rem;
	text-decoration: none;
	border: 1px solid rgba(255, 255, 255, 0.22);
	border-radius: 999px;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.pss-bl-ask__topics a:hover,
.pss-bl-ask__topics a:focus-visible {
	color: #fff;
	border-color: var(--pss-color-red);
}

.pss-bl-ask__text.is-armed:not(.is-live) > * {
	opacity: 0;
}

.pss-bl-ask__text.is-live > * {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-bl-ask__text.is-live > :nth-child(2) { animation-delay: 0.07s; }
.pss-bl-ask__text.is-live > :nth-child(3) { animation-delay: 0.14s; }

@media (max-width: 900px) {
	.pss-bl-board__grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 0.9rem;
	}

	.pss-bl-board__grid::before {
		display: none;
	}

	.pss-bl-disc__top {
		margin-bottom: 0.5rem;
	}

	/* On a phone each discipline keeps one swipeable row of the services that have guides. */
	.pss-bl .pss-bl-chips {
		flex-wrap: nowrap;
		overflow-x: auto;
		margin-inline: calc(-1 * clamp(1.1rem, 2.5vw, 2rem));
		padding: 2px clamp(1.1rem, 2.5vw, 2rem);
		scrollbar-width: none;
	}

	.pss-bl-chips::-webkit-scrollbar {
		display: none;
	}

	.pss-bl-chips li:has(span.pss-bl-chip),
	.pss-bl-disc:not(:has(.is-lit)) .pss-bl-chips {
		display: none;
	}

	.pss-bl-feat {
		grid-template-columns: minmax(0, 1fr);
	}

	.pss-bl-row {
		grid-template-columns: minmax(0, 1fr) 7rem;
		gap: 0.45rem 1rem;
	}

	.pss-bl-row__topic {
		grid-column: 1 / -1;
	}

	.pss-bl-row__meta {
		grid-column: 1;
		grid-row: 3;
	}

	.pss-bl-row__thumb {
		grid-column: 2;
		grid-row: 2 / 4;
		align-self: start;
	}

	.pss-bl-ask {
		grid-template-columns: minmax(0, 1fr);
	}
}

@media (max-width: 560px) {
	.pss-ch .pss-bl-search kbd,
	.pss-bl-sort {
		display: none;
	}

	.pss-bl-board__head {
		align-items: flex-start;
	}

	.pss-bl-row__text p {
		display: -webkit-box;
		-webkit-line-clamp: 3;
		-webkit-box-orient: vertical;
		overflow: hidden;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-bl *,
	.pss-bl *::before,
	.pss-bl *::after,
	.pss-ch .pss-bl-search {
		animation: none !important;
		transition: none !important;
	}
}

/* =========================================================
   BLOG POST: reading line under the menu, "On this page"
   ========================================================= */
.pss-read-line {
	position: fixed;
	z-index: 10000;
	top: 0;
	left: 0;
	right: 0;
	height: 3px;
	pointer-events: none;
	opacity: 0;
	transition: opacity 0.25s ease;
}

.pss-read-line.is-on {
	opacity: 1;
}

.pss-read-line span {
	display: block;
	height: 100%;
	background: var(--pss-color-red);
	box-shadow: 0 0 8px rgba(221, 51, 51, 0.55);
	transform: scaleX(0);
	transform-origin: left;
}

[dir="rtl"] .pss-read-line span {
	transform-origin: right;
}

.pss-toc ol {
	margin: 0;
	padding: 0;
	list-style: none;
	counter-reset: none;
}

.pss-toc li {
	margin: 0;
	padding: 0;
}

.pss-toc li::before {
	content: none !important;
	display: none !important;
}

.pss-toc a {
	position: relative;
	display: grid;
	grid-template-columns: 1.75rem minmax(0, 1fr);
	gap: 0.35rem;
	padding: 0.45rem 0 0.45rem 0.85rem;
	color: var(--pss-color-muted);
	font-size: 0.9rem;
	line-height: 1.35;
	text-decoration: none;
	border-inline-start: 2px solid var(--pss-color-line);
	transition: color 0.2s ease, border-color 0.2s ease;
}

.pss-toc a span {
	color: var(--pss-color-red);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1.6;
}

.pss-toc a:hover,
.pss-toc a:focus-visible {
	color: var(--pss-color-navy);
}

.pss-toc a.is-current {
	color: var(--pss-color-navy);
	font-weight: 700;
	border-inline-start-color: var(--pss-color-red);
}

/* The7 sets overflow: hidden on #page, which stops position: sticky. */
body.single-post #page {
	overflow: clip;
}

body.single-post #sidebar > .sidebar-content {
	height: 100%;
}

body.single-post .entry-content h2[id] {
	scroll-margin-top: 6rem;
}

/* Share a post: the name stays for screen readers; the mark is the app's own. */
body.single-post .single-share-box {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	gap: 0.9rem;
	width: 100%;
	margin: 2.25rem 0 2rem !important;
	padding: 1.35rem 0 0;
	text-align: start;
	border: 0;
	border-top: 1px solid var(--pss-color-line);
	background: none;
	box-shadow: none;
}

body.single-post .share-link-description {
	display: flex;
	align-items: center;
	gap: 0.6rem;
	width: 100%;
	margin: 0;
	color: var(--pss-color-navy);
	font-size: 0.95rem;
	font-weight: 700;
	line-height: 1.3;
	text-align: start;
}

body.single-post .share-link-description .share-link-icon {
	display: none;
}

body.single-post .share-link-description::before {
	content: "";
	flex: none;
	width: 28px;
	height: 2px;
	background: var(--pss-color-red);
}

body.single-post .share-buttons {
	position: static !important;
	display: flex !important;
	flex-flow: row wrap !important;
	justify-content: flex-start !important;
	gap: 0.75rem;
	width: auto;
	margin: 0 !important;
	transform: none !important;
	line-height: 1;
}

body.single-post .share-buttons a {
	position: relative;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex: none;
	width: 46px !important;
	height: 46px !important;
	min-width: 46px !important;
	min-height: 46px !important;
	margin: 0 !important;
	padding: 0 !important;
	color: #fff !important;
	line-height: 1;
	text-decoration: none !important;
	border: 0 !important;
	border-radius: 50% !important;
	background-image: none !important;
	box-shadow: 0 1px 2px rgba(31, 54, 92, 0.16);
	opacity: 1 !important;
	transition: transform 0.2s ease, box-shadow 0.2s ease;
}

body.single-post .share-buttons a.facebook { background: #1877f2 !important; }
body.single-post .share-buttons a.twitter { background: #111111 !important; }
body.single-post .share-buttons a.linkedin { background: #0a66c2 !important; }
body.single-post .share-buttons a.whatsapp { background: #25d366 !important; }

body.single-post .share-buttons a::before,
body.single-post .share-buttons a::after,
body.single-post .share-buttons .soc-font-icon {
	content: none !important;
	display: none !important;
}

body.single-post .share-buttons a svg,
body.single-post .share-buttons a svg path {
	display: block;
	width: 22px !important;
	height: 22px !important;
	padding: 0;
	color: #fff !important;
	fill: #fff !important;
	background: none;
	border-radius: 0;
}

/* The visible name repeated the X mark. The name stays in the button title. */
body.single-post .share-buttons .social-text {
	position: absolute !important;
	width: 1px !important;
	height: 1px !important;
	margin: -1px !important;
	padding: 0 !important;
	overflow: hidden !important;
	clip: rect(0, 0, 0, 0) !important;
	clip-path: inset(50%) !important;
	white-space: nowrap !important;
}

body.single-post .share-buttons a:hover,
body.single-post .share-buttons a:focus-visible {
	color: #fff !important;
	transform: translateY(-2px);
	box-shadow: 0 8px 16px rgba(31, 54, 92, 0.18);
}

body.single-post .share-buttons a:focus-visible {
	outline: 2px solid var(--pss-color-navy);
	outline-offset: 3px;
}

@media (prefers-reduced-motion: reduce) {
	body.single-post .share-buttons a {
		transition: none;
	}

	body.single-post .share-buttons a:hover,
	body.single-post .share-buttons a:focus-visible {
		transform: none;
	}
}

/* Previous guide, all guides, and next guide. The7's grid button is not used. */
body.single-post .navigation.post-navigation {
	display: none;
}

.pss-post-nav {
	--pss-in-dir: 1;
	margin: 1.75rem 0 0;
	padding-top: 1.35rem;
	border-top: 1px solid var(--pss-color-line);
}

.pss-post-nav__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
	gap: 1rem 1.5rem;
	align-items: center;
}

.pss-post-nav--solo .pss-post-nav__grid {
	grid-template-columns: auto;
	justify-content: start;
}

.pss-post-nav__side {
	display: flex;
	flex-direction: column;
	gap: 0.3rem;
	min-width: 0;
	color: var(--pss-color-navy);
	text-decoration: none;
}

.pss-post-nav__next {
	text-align: end;
}

.pss-post-nav__side span {
	color: var(--pss-color-red);
	font-size: 0.78rem;
	font-weight: 700;
	line-height: 1.3;
}

.pss-post-nav__side strong {
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
}

.pss-post-nav__side:hover strong,
.pss-post-nav__side:focus-visible strong {
	color: var(--pss-color-red);
}

.pss-post-nav__all {
	display: inline-flex;
	align-items: center;
	gap: 0.45rem;
	justify-self: center;
	padding: 0.55rem 0.95rem;
	color: var(--pss-color-navy);
	font-size: 0.85rem;
	font-weight: 700;
	line-height: 1;
	white-space: nowrap;
	text-decoration: none;
	border: 1px solid var(--pss-color-line);
	border-radius: 999px;
	background: #fff;
	transition: border-color 0.2s ease, color 0.2s ease;
}

.pss-post-nav__all svg {
	width: 16px;
	height: 16px;
	color: var(--pss-color-red);
	transition: transform 0.2s ease;
}

.pss-post-nav__all:hover,
.pss-post-nav__all:focus-visible {
	color: var(--pss-color-navy);
	border-color: var(--pss-color-red);
}

.pss-post-nav__all:hover svg,
.pss-post-nav__all:focus-visible svg {
	transform: translateX(calc(var(--pss-in-dir, 1) * 3px));
}

[dir="rtl"] .pss-post-nav {
	--pss-in-dir: -1;
}

[dir="rtl"] .pss-post-nav__all svg {
	scale: -1 1;
}

@media (max-width: 640px) {
	.pss-post-nav__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.pss-post-nav__next {
		text-align: start;
	}

	.pss-post-nav__all {
		justify-self: start;
		order: -1;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-post-nav__all,
	.pss-post-nav__all svg {
		transition: none;
	}
}

.pss-toc--side {
	position: sticky;
	top: 6.5rem;
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid #e6e8ee;
}

.pss-toc--side h2 {
	margin: 0 0 0.85rem;
	color: #1f365c;
	font-size: 1.2rem;
	font-weight: 800;
}

.pss-toc--inline {
	margin: 0 0 1.75rem;
	border: 1px solid var(--pss-color-line);
	border-radius: 6px;
	background: var(--pss-color-tint);
}

.pss-toc--inline summary {
	position: relative;
	padding: 0.85rem 2.75rem 0.85rem 1rem;
	color: var(--pss-color-navy);
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}

.pss-toc--inline summary::-webkit-details-marker {
	display: none;
}

.pss-toc--inline summary::after {
	content: "";
	position: absolute;
	inset-inline-end: 1.1rem;
	top: 50%;
	width: 0.5rem;
	height: 0.5rem;
	border-right: 2px solid var(--pss-color-red);
	border-bottom: 2px solid var(--pss-color-red);
	transform: translateY(-70%) rotate(45deg);
	transition: transform 0.2s ease;
}

.pss-toc--inline[open] summary::after {
	transform: translateY(-30%) rotate(225deg);
}

.pss-toc--inline ol {
	padding: 0 1rem 0.85rem;
}

@media (min-width: 992px) {
	.pss-toc--inline {
		display: none;
	}
}

@media (max-width: 991px) {
	.pss-toc--side {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-read-line,
	.pss-toc a,
	.pss-toc--inline summary::after {
		transition: none;
	}
}

.pss-blog-pages {
	display: flex;
	justify-content: center;
	margin-top: 1.8rem;
}

.pss-blog-pages .page-numbers {
	display: flex;
	gap: 0.4rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pss-blog-pages .page-numbers a,
.pss-blog-pages .page-numbers span {
	display: grid;
	place-items: center;
	min-width: 2.4rem;
	height: 2.4rem;
	padding: 0 0.55rem;
	color: #1f365c;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid #e4e7ec;
	border-radius: 0.35rem;
	background: #fff;
}

.pss-blog-pages .page-numbers .current,
.pss-blog-pages .page-numbers a:hover,
.pss-blog-pages .page-numbers a:focus-visible {
	color: #fff;
	border-color: #dd3333;
	background: #dd3333;
}

.pss-blog-side__widget + .pss-blog-side__widget {
	margin-top: 2rem;
	padding-top: 1.5rem;
	border-top: 1px solid #e6e8ee;
}

.pss-blog-side__widget h2 {
	margin: 0 0 1rem;
	color: #1f365c;
	font-size: 1.2rem;
	font-weight: 800;
}

.pss-blog-tags {
	display: flex;
	flex-wrap: wrap;
	gap: 0.45rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pss-blog-tags a {
	display: inline-block;
	padding: 0.35rem 0.7rem;
	color: #1f365c;
	font-size: 0.82rem;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid rgba(221, 51, 51, 0.35);
	border-radius: 999px;
	background: #fff;
}

.pss-blog-tags a:hover,
.pss-blog-tags a:focus-visible {
	color: #fff;
	border-color: #dd3333;
	background: #dd3333;
}

.pss-blog-recent {
	display: grid;
	gap: 0.9rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pss-blog-recent li {
	display: grid;
	grid-template-columns: 4.2rem minmax(0, 1fr);
	gap: 0.75rem;
	align-items: center;
}

.pss-blog-recent__thumb {
	display: block;
	width: 4.2rem;
	height: 4.2rem;
	overflow: hidden;
	border-radius: 0.35rem;
	background: #eef1f6;
}

body.single-post .pss-blog-recent__thumb img {
	width: 100% !important;
	height: 100% !important;
	max-width: none !important;
	object-fit: cover;
}

.pss-blog-recent a {
	color: #1f365c;
	font-weight: 800;
	line-height: 1.35;
	text-decoration: none;
}

.pss-blog-recent a:hover,
.pss-blog-recent a:focus-visible {
	color: #dd3333;
}

.pss-blog-recent time {
	display: block;
	margin-top: 0.2rem;
	color: #dd3333;
	font-size: 0.78rem;
	font-weight: 700;
}

/* Blog post FAQ toggles (core/details): the theme strips the native marker. */
body.single-post .entry-content .wp-block-details {
	margin: 0;
	border-block-end: 1px solid var(--pss-color-line);
}

body.single-post .entry-content .wp-block-details:first-of-type {
	border-block-start: 1px solid var(--pss-color-line);
}

body.single-post .entry-content .wp-block-details summary {
	position: relative;
	display: block;
	padding-block: 0.9rem;
	padding-inline: 0 2.25rem;
	color: var(--pss-color-navy);
	font-weight: 700;
	list-style: none;
	cursor: pointer;
}

body.single-post .entry-content .wp-block-details summary::-webkit-details-marker {
	display: none;
}

body.single-post .entry-content .wp-block-details summary::before,
body.single-post .entry-content .wp-block-details summary::after {
	content: "";
	position: absolute;
	inset-inline-end: 0.35rem;
	inset-block-start: 50%;
	inline-size: 0.8rem;
	block-size: 2px;
	background: var(--pss-color-red);
	transition: transform 0.2s ease;
}

body.single-post .entry-content .wp-block-details summary::after {
	transform: rotate(90deg);
}

body.single-post .entry-content .wp-block-details[open] summary::after {
	transform: rotate(0deg);
}

body.single-post .entry-content .wp-block-details summary:hover,
body.single-post .entry-content .wp-block-details summary:focus-visible {
	color: var(--pss-color-red);
}

body.single-post .entry-content .wp-block-details > p {
	margin: 0 0 1rem;
	color: var(--pss-color-muted);
}

@media (prefers-reduced-motion: reduce) {
	body.single-post .entry-content .wp-block-details summary::after {
		transition: none;
	}
}

.pss-ch__inner {
	position: relative;
	z-index: 1;
	width: min(84rem, calc(100% - 2 * clamp(1.1rem, 3vw, 1.5rem)));
	margin-inline: auto;
}

.pss-ch__title {
	margin: 0 0 0.75rem;
	color: #fff;
	font-size: clamp(2rem, 3.4vw, 3.1rem);
	font-weight: 800;
	line-height: 1.12;
	letter-spacing: -0.01em;
}

.pss-ch__breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 0.55rem;
	margin: 0 0 1.1rem;
	color: rgba(255, 255, 255, 0.62);
	font-size: 0.78rem;
	letter-spacing: 0.09em;
	text-transform: uppercase;
}

.pss-ch__breadcrumb [aria-current] {
	color: #ff6b6b;
}

.pss-ch__breadcrumb a {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	color: inherit;
	text-decoration: none;
}

.pss-ch__breadcrumb a:hover,
.pss-ch__breadcrumb a:focus-visible {
	text-decoration: underline;
	text-underline-offset: 0.25rem;
}

.pss-ch__breadcrumb svg {
	width: 0.95rem;
	height: 0.95rem;
}

.pss-ch__title,
.pss-ch__subtitle,
.pss-ch__breadcrumb {
	animation: pss-fade-up 0.6s ease-out both;
}

.pss-ch__breadcrumb {
	animation-delay: 0.1s;
}

.pss-ch__title {
	animation-delay: 0.2s;
}

.pss-ch__subtitle {
	animation-delay: 0.32s;
}

@keyframes pss-fade-up {
	from {
		opacity: 0;
		transform: translateY(12px);
	}
	to {
		opacity: 1;
		transform: translateY(0);
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-ch__title,
	.pss-ch__subtitle,
	.pss-ch__breadcrumb,
	.pss-sys * {
		animation: none;
	}

	.pss-sys__trace {
		stroke-dashoffset: 0;
	}

	.pss-sys__node,
	.pss-sys__hub,
	.pss-sys__joint,
	.pss-sys__led {
		opacity: 1;
		transform: none;
	}

	.pss-sys__pulse {
		display: none;
	}
}

.pss-ch__subtitle {
	max-width: min(40rem, 46vw);
	margin: 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: clamp(0.95rem, 1.15vw, 1.08rem);
	line-height: 1.55;
}

/* ===== Contact page: main block ===== */
.pss-cx-main {
	padding: clamp(2.5rem, 5vw, 4.5rem) 0;
}

.pss-cx-main__grid {
	display: grid;
	grid-template-columns: minmax(0, 2fr) minmax(0, 3fr);
	gap: clamp(1.5rem, 3vw, 2.75rem);
	align-items: stretch;
}

.pss-cx-kicker {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	margin: 0 0 0.7rem;
	color: #dd3333;
	font-size: 0.82rem;
	font-weight: 800;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

.pss-cx-kicker::before {
	content: "";
	width: 1.5rem;
	height: 2px;
	background: #dd3333;
}

.pss-cx-kicker--light {
	color: rgba(255, 255, 255, 0.92);
}

.pss-cx-kicker--light::before {
	background: #fff;
}

.pss-cx-title {
	margin: 0 0 1rem;
	color: #1f365c;
	font-size: clamp(1.5rem, 2.4vw, 2.1rem);
	font-weight: 800;
	line-height: 1.2;
}

.pss-cx-title--light {
	color: #fff;
}

.pss-cx-lead {
	max-width: 40rem;
	margin: 0;
	color: #5c6570;
	font-size: 1rem;
	line-height: 1.85;
}

.pss-cx-lead--light {
	color: rgba(255, 255, 255, 0.88);
}

/* Left panel: same navy and blueprint grid as the page header */
.pss-cx-panel {
	position: relative;
	isolation: isolate;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	padding: clamp(1.75rem, 3vw, 2.5rem);
	color: #fff;
	border-radius: 1.25rem;
	background:
		radial-gradient(90% 55% at 100% 0%, rgba(221, 51, 51, 0.2), transparent 62%),
		linear-gradient(165deg, #16294a 0%, #0d1c30 100%);
	box-shadow: 0 18px 40px rgba(13, 28, 48, 0.22);
}

.pss-cx-panel::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 36px 36px;
	-webkit-mask-image: linear-gradient(200deg, #000 0%, transparent 55%);
	mask-image: linear-gradient(200deg, #000 0%, transparent 55%);
}

.pss-cx-status {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	align-self: flex-start;
	gap: 0.3rem 0.55rem;
	margin: 0 0 1.25rem;
	padding: 0.4rem 0.85rem;
	color: rgba(255, 255, 255, 0.72);
	font-size: 0.85rem;
	line-height: 1.4;
	border: 1px solid rgba(255, 255, 255, 0.14);
	border-radius: 999px;
	background: rgba(255, 255, 255, 0.04);
}

.pss-cx-status__led {
	flex: none;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.4);
}

.pss-cx-status.is-open .pss-cx-status__led {
	background: #34d399;
	--pss-led: 52, 211, 153;
	box-shadow: 0 0 0 0 rgba(var(--pss-led), 0.6);
	animation: pss-cx-live 2.4s ease-out infinite;
}

.pss-cx-status.is-closed .pss-cx-status__led {
	background: var(--pss-color-red);
	--pss-led: 221, 51, 51;
	box-shadow: 0 0 0 0 rgba(var(--pss-led), 0.6);
	animation: pss-cx-live 2.4s ease-out infinite;
}

@keyframes pss-cx-live {
	70%,
	100% {
		box-shadow: 0 0 0 0.45rem rgba(var(--pss-led), 0);
	}
}

.pss-cx-status__state {
	color: #fff;
	font-weight: 700;
}

.pss-cx-channels {
	display: grid;
	gap: 1.4rem;
	margin: 0.75rem 0 0;
}

#page .pss-cx-channel__label {
	margin: 0 0 0.55rem;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.82rem;
	font-weight: 600;
	letter-spacing: 0.02em;
	line-height: 1.4;
}

#page .pss-cx-channel__list,
#page .pss-cx-steps__list {
	display: grid;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none !important;
}

#page .pss-cx-channel__list li,
#page .pss-cx-steps__list li {
	min-width: 0;
	margin: 0;
	list-style: none !important;
}

#page .pss-cx-channel__list li::marker,
#page .pss-cx-steps__list li::marker {
	content: none !important;
}

.pss-cx-channel__link {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	padding: 0.7rem 0.85rem;
	color: #fff;
	text-decoration: none;
	border: 1px solid rgba(255, 255, 255, 0.1);
	border-radius: 0.85rem;
	background: rgba(255, 255, 255, 0.035);
	transition: border-color 0.25s ease, background 0.25s ease;
}

.pss-cx-channel__link:hover,
.pss-cx-channel__link:focus-visible {
	color: #fff;
	border-color: rgba(221, 51, 51, 0.65);
	background: rgba(221, 51, 51, 0.12);
}

.pss-cx-channel__icon {
	display: grid;
	flex: none;
	place-items: center;
	width: 2.2rem;
	height: 2.2rem;
	color: #ff6b6b;
	border: 1px solid rgba(221, 51, 51, 0.5);
	border-radius: 50%;
	transition: background 0.25s ease, color 0.25s ease;
}

.pss-cx-channel__link:hover .pss-cx-channel__icon,
.pss-cx-channel__link:focus-visible .pss-cx-channel__icon {
	color: #fff;
	background: var(--pss-color-red);
}

.pss-cx-channel__icon svg {
	width: 1rem;
	height: 1rem;
}

.pss-cx-channel__value {
	min-width: 0;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.35;
	overflow-wrap: anywhere;
}

.pss-cx-channel__note {
	margin-inline-start: auto;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.8rem;
}

/* What happens next: a short vertical trace, like the header diagram */
.pss-cx-steps {
	margin-top: auto;
	padding-top: 1.75rem;
}

#page .pss-cx-steps__list {
	gap: 1rem;
}

.pss-cx-steps__item {
	position: relative;
	display: flex;
	gap: 0.85rem;
}

.pss-cx-steps__item:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 1.6rem;
	bottom: -1rem;
	inset-inline-start: 0.8rem;
	width: 1px;
	background: linear-gradient(rgba(221, 51, 51, 0.7), rgba(221, 51, 51, 0.25));
}

.pss-cx-steps__node {
	display: grid;
	flex: none;
	place-items: center;
	width: 1.6rem;
	height: 1.6rem;
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	border: 1px solid rgba(221, 51, 51, 0.7);
	border-radius: 50%;
	background: #0f1f36;
}

.pss-cx-steps__body {
	display: grid;
	gap: 0.15rem;
	padding-top: 0.1rem;
	font-size: 0.88rem;
	line-height: 1.5;
}

.pss-cx-steps__body strong {
	color: #fff;
	font-weight: 700;
}

.pss-cx-steps__body span {
	color: rgba(255, 255, 255, 0.62);
}

/* Right form card */
.pss-cx-form {
	display: flex;
	min-width: 0;
}

.pss-cx-form__card {
	display: flex;
	flex: 1;
	flex-direction: column;
	margin-top: 0;
	padding: clamp(1.75rem, 3vw, 2.75rem);
	border: 1px solid rgba(31, 54, 92, 0.1);
	border-radius: 1.25rem;
	background: #fff;
	box-shadow: 0 10px 30px rgba(31, 54, 92, 0.08);
}

.pss-cx-topics {
	min-width: 0;
	margin: 1.5rem 0 0;
	padding: 0;
	border: 0;
}

.pss-cx-topics__legend {
	margin: 0 0 0.6rem;
	padding: 0;
	color: var(--pss-color-navy);
	font-size: 0.9rem;
	font-weight: 700;
}

.pss-cx-topics__list {
	display: flex;
	flex-wrap: wrap;
	gap: 0.55rem;
}

#page .pss-cx-topic {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin: 0;
	padding: 0.55rem 1rem;
	color: var(--pss-color-navy);
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	line-height: 1.2;
	border: 1px solid #d6dce5;
	border-radius: 999px;
	background: #f7f9fc;
	box-shadow: none;
	cursor: pointer;
	transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.pss-cx-topic svg {
	width: 1rem;
	height: 1rem;
	color: var(--pss-color-red);
}

#page .pss-cx-topic:hover {
	border-color: rgba(221, 51, 51, 0.55);
}

#page .pss-cx-topic:focus-visible {
	outline: 2px solid var(--pss-color-red);
	outline-offset: 2px;
}

#page .pss-cx-topic[aria-pressed="true"] {
	color: #fff;
	border-color: var(--pss-color-navy);
	background: var(--pss-color-navy);
}

#page .pss-cx-topic[aria-pressed="true"] svg {
	color: #ff6b6b;
}

.pss-cx-form__card .pss-cx-title {
	position: relative;
	isolation: isolate;
}

.pss-cx-form__card .pss-cx-title::before {
	content: "";
	position: absolute;
	left: -6.2rem;
	top: -6.4rem;
	z-index: -1;
	width: 14rem;
	height: 14rem;
	border-radius: 50%;
	background: radial-gradient(circle, rgba(221, 51, 51, 0.1) 0%, rgba(221, 51, 51, 0) 72%);
	filter: blur(6px);
	pointer-events: none;
}

.pss-cf .dt-contact-form {
	margin: 0.75rem 0 0;
}

.pss-cf .dt-contact-form .form-fields {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 1rem 1.25rem;
	margin: 0 0 1rem;
}

.pss-cf .dt-contact-form .form-fields > span,
.pss-cf .dt-contact-form .form-message {
	display: block;
	min-width: 0;
}

.pss-cf .dt-contact-form .form-message {
	margin: 0 0 1rem;
}

.pss-cf .dt-contact-form label.assistive-text {
	position: static !important;
	display: block;
	width: auto !important;
	height: auto !important;
	margin: 0 0 0.4rem;
	overflow: visible !important;
	clip: auto !important;
	clip-path: none !important;
	color: var(--pss-color-navy);
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.3;
}

.pss-cf .dt-contact-form .form-fields input,
.pss-cf .dt-contact-form .form-message textarea {
	width: 100%;
	box-sizing: border-box;
	color: var(--pss-contact-text) !important;
	background: #f7f9fc !important;
	border: 1px solid #d6dce5 !important;
	border-radius: 0.6rem !important;
	transition: border-color 0.25s ease, box-shadow 0.25s ease, background 0.25s ease;
}

.pss-cf .dt-contact-form .form-fields input::placeholder,
.pss-cf .dt-contact-form .form-message textarea::placeholder {
	color: transparent !important;
}

.pss-cf .dt-contact-form .form-message textarea {
	height: 9.9rem !important;
	min-height: 0 !important;
	resize: vertical;
}

.pss-cf .dt-contact-form .form-fields input:focus,
.pss-cf .dt-contact-form .form-message textarea:focus {
	outline: none;
	background: #fff !important;
	border-color: #dd3333 !important;
	box-shadow: 0 0 0 3px rgba(221, 51, 51, 0.16) !important;
}

.pss-cf .dt-contact-form .the7-form-terms-wrap {
	margin: 0 0 1.1rem;
	color: #5c6570;
	font-size: 0.86rem;
	line-height: 1.6;
}

.pss-cf .dt-contact-form .the7-form-terms-wrap input {
	margin: 0 0.35rem 0 0;
	accent-color: #dd3333;
}

/* Location band */
.pss-cx-location {
	padding: 0 0 clamp(2.5rem, 5vw, 4.5rem);
}

.pss-cx-location__heading {
	margin-bottom: 2rem;
}

.pss-cx-location__map {
	position: relative;
}

.pss-cx-map__frame {
	overflow: hidden;
	height: 26rem;
	border-radius: 1.25rem;
	background: #eef1f6;
}

.pss-cx-map__frame .pss-google-map-embed {
	display: block;
	width: 100%;
	height: 100%;
}

.pss-cx-map__frame .pss-leaflet-map {
	width: 100% !important;
	height: 100% !important;
}

.pss-cx-map__frame iframe {
	display: block;
	width: 100%;
	height: 100%;
	margin: 0 !important;
}

.pss-cx-office {
	position: absolute;
	left: 1.5rem;
	bottom: 1.5rem;
	z-index: 500;
	width: min(20rem, calc(100% - 3rem));
	padding: 1.4rem 1.5rem;
	border-radius: 1rem;
	background: #fff;
	box-shadow: 0 14px 36px rgba(31, 54, 92, 0.18);
}

.pss-cx-office h3 {
	margin: 0 0 0.6rem;
	color: #1f365c;
	font-size: 1.15rem;
	font-weight: 800;
}

.pss-cx-office__line {
	margin: 0 0 0.4rem;
	color: #5c6570;
	font-size: 0.9rem;
	line-height: 1.6;
}

.pss-cx-office__link {
	display: inline-flex;
	align-items: center;
	gap: 0.4rem;
	margin-top: 0.5rem;
	color: #dd3333;
	font-weight: 800;
	text-decoration: none;
}

.pss-cx-office__link:hover,
.pss-cx-office__link:focus-visible {
	color: #bb2222;
	text-decoration: underline;
	text-underline-offset: 0.25rem;
}

.pss-cx-office__link svg {
	width: 1.05rem;
	height: 1.05rem;
	transition: transform 0.25s ease;
}

.pss-cx-office__link:hover svg,
.pss-cx-office__link:focus-visible svg {
	transform: translateX(3px);
}

@media (prefers-reduced-motion: reduce) {
	.pss-cx-channel__link,
	.pss-cx-channel__icon,
	.pss-cx-topic,
	.pss-cx-office__link svg {
		transition: none;
	}

	.pss-cx-status.is-open .pss-cx-status__led,
	.pss-cx-status.is-closed .pss-cx-status__led {
		animation: none;
	}
}

@media screen and (max-width: 1023px) {
	.pss-cx-main__grid {
		grid-template-columns: 1fr;
	}

	.pss-cx-channels {
		grid-template-columns: 1fr 1fr;
	}
}

@media screen and (max-width: 767px) {
	.pss-cx-channels {
		grid-template-columns: 1fr;
	}

	.pss-cf .dt-contact-form .form-fields {
		grid-template-columns: 1fr;
	}

	.pss-cx-map__frame {
		height: 20rem;
	}

	.pss-cx-office {
		position: static;
		width: auto;
		margin-top: 1rem;
	}
}

@media screen and (max-width: 560px) {
	.pss-cx-panel {
		padding: 1.5rem;
	}

	.pss-cx-form__card {
		padding: 1.5rem;
	}

	.pss-cx-title {
		font-size: 1.35rem;
	}

	.pss-cx-channel__link {
		padding: 0.65rem 0.7rem;
	}

	.pss-cx-status {
		border-radius: 0.9rem;
	}
}

/* =========================================================
   Contact entrances (D-021). js/pss-reveal.js adds .is-armed
   only when a [data-pss-reveal] block starts off screen, then
   .is-live as it scrolls in. Each block has its own sequence.
   Shared keyframes for any later page: pss-in-rise, pss-in-pop,
   pss-in-slide, pss-in-wipe, pss-in-draw-x, pss-in-draw-y.
   ========================================================= */

.pss-contact-page {
	--pss-in-dir: 1;
}

[dir="rtl"] .pss-contact-page {
	--pss-in-dir: -1;
}

@keyframes pss-in-rise {
	from {
		opacity: 0;
		transform: translateY(18px);
	}
}

@keyframes pss-in-pop {
	from {
		opacity: 0;
		transform: scale(0.7);
	}
}

@keyframes pss-in-slide {
	from {
		opacity: 0;
		transform: translateX(calc(var(--pss-in-dir) * -16px));
	}
}

@keyframes pss-in-wipe {
	from {
		clip-path: inset(0 100% 0 0);
	}

	to {
		clip-path: inset(0);
	}
}

@keyframes pss-in-wipe-rtl {
	from {
		clip-path: inset(0 0 0 100%);
	}

	to {
		clip-path: inset(0);
	}
}

@keyframes pss-in-draw-x {
	from {
		transform: scaleX(0);
	}
}

@keyframes pss-in-draw-y {
	from {
		transform: scaleY(0);
	}
}

/* Channels: each row slides in and its icon pops. Email follows phone. */
.pss-cx-channels.is-armed:not(.is-live) .pss-cx-channel__label,
.pss-cx-channels.is-armed:not(.is-live) .pss-cx-channel__link {
	opacity: 0;
}

.pss-cx-channels.is-live .pss-cx-channel__label {
	animation: pss-in-rise 0.45s ease-out backwards;
}

.pss-cx-channels.is-live .pss-cx-channel:nth-child(2) .pss-cx-channel__label {
	animation-delay: 0.2s;
}

.pss-cx-channels.is-live .pss-cx-channel__link {
	animation: pss-in-slide 0.45s ease-out backwards;
	animation-delay: calc(0.08s + var(--i, 0) * 0.08s);
}

.pss-cx-channels.is-live .pss-cx-channel:nth-child(2) .pss-cx-channel__link {
	animation-delay: calc(0.26s + var(--i, 0) * 0.08s);
}

.pss-cx-channels.is-live .pss-cx-channel__icon {
	animation: pss-in-pop 0.4s cubic-bezier(0.3, 1.4, 0.5, 1) backwards;
	animation-delay: calc(0.14s + var(--i, 0) * 0.08s);
}

.pss-cx-channels.is-live .pss-cx-channel:nth-child(2) .pss-cx-channel__icon {
	animation-delay: calc(0.32s + var(--i, 0) * 0.08s);
}

/* What happens next: each node lights, the trace drops to the next step. */
.pss-cx-steps.is-armed:not(.is-live) .pss-cx-channel__label,
.pss-cx-steps.is-armed:not(.is-live) .pss-cx-steps__node,
.pss-cx-steps.is-armed:not(.is-live) .pss-cx-steps__body {
	opacity: 0;
}

.pss-cx-steps.is-armed:not(.is-live) .pss-cx-steps__item:not(:last-child)::after {
	transform: scaleY(0);
}

.pss-cx-steps__item:not(:last-child)::after {
	transform-origin: top;
}

.pss-cx-steps.is-live .pss-cx-channel__label {
	animation: pss-in-rise 0.45s ease-out backwards;
}

.pss-cx-steps.is-live .pss-cx-steps__node {
	animation: pss-in-pop 0.4s cubic-bezier(0.3, 1.4, 0.5, 1) backwards;
	animation-delay: calc(0.1s + var(--i, 0) * 0.16s);
}

.pss-cx-steps.is-live .pss-cx-steps__body {
	animation: pss-in-slide 0.45s ease-out backwards;
	animation-delay: calc(0.16s + var(--i, 0) * 0.16s);
}

.pss-cx-steps.is-live .pss-cx-steps__item:not(:last-child)::after {
	animation: pss-in-draw-y 0.32s ease-out backwards;
	animation-delay: calc(0.24s + var(--i, 0) * 0.16s);
}

/* Form: the heading arrives with the column; chips then the fields follow. */
.pss-cx-form.is-armed:not(.is-live) > .pss-cx-form__card > :is(.pss-cx-kicker, .pss-cx-title, .pss-cx-lead) {
	opacity: 0;
}

.pss-cx-form.is-armed:not(.is-live) > .pss-cx-form__card > .pss-cx-kicker::before,
.pss-cx-location.is-armed:not(.is-live) .pss-cx-kicker::before {
	transform: scaleX(0);
}

.pss-cx-form > .pss-cx-form__card > .pss-cx-kicker::before,
.pss-cx-location .pss-cx-kicker::before {
	transform-origin: left;
}

[dir="rtl"] .pss-cx-form > .pss-cx-form__card > .pss-cx-kicker::before,
[dir="rtl"] .pss-cx-location .pss-cx-kicker::before {
	transform-origin: right;
}

.pss-cx-form.is-live > .pss-cx-form__card > :is(.pss-cx-kicker, .pss-cx-title, .pss-cx-lead) {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-cx-form.is-live > .pss-cx-form__card > .pss-cx-title {
	animation-delay: 0.08s;
}

.pss-cx-form.is-live > .pss-cx-form__card > .pss-cx-lead {
	animation-delay: 0.16s;
}

.pss-cx-form.is-live > .pss-cx-form__card > .pss-cx-kicker::before {
	animation: pss-in-draw-x 0.35s ease-out backwards;
}

.pss-cx-form__ask.is-armed:not(.is-live) .pss-cx-topics__legend,
.pss-cx-form__ask.is-armed:not(.is-live) .pss-cx-topic,
.pss-cx-form__ask.is-armed:not(.is-live) .dt-contact-form {
	opacity: 0;
}

.pss-cx-form__ask.is-live .pss-cx-topics__legend {
	animation: pss-in-rise 0.4s ease-out backwards;
}

.pss-cx-form__ask.is-live .pss-cx-topic {
	animation: pss-in-pop 0.4s cubic-bezier(0.3, 1.4, 0.5, 1) backwards;
	animation-delay: calc(0.08s + var(--i, 0) * 0.08s);
}

.pss-cx-form__ask.is-live .dt-contact-form {
	animation: pss-in-rise 0.5s ease-out 0.28s backwards;
}

/* Location: the heading rises, the map is uncovered, the office card lands. */
.pss-cx-location.is-armed:not(.is-live) .pss-cx-location__heading > * ,
.pss-cx-location.is-armed:not(.is-live) .pss-cx-office {
	opacity: 0;
}

.pss-cx-location.is-armed:not(.is-live) .pss-cx-map__frame {
	clip-path: inset(0 100% 0 0);
}

[dir="rtl"] .pss-cx-location.is-armed:not(.is-live) .pss-cx-map__frame {
	clip-path: inset(0 0 0 100%);
}

.pss-cx-location.is-live .pss-cx-location__heading > * {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-cx-location.is-live .pss-cx-location__heading > :nth-child(2) {
	animation-delay: 0.08s;
}

.pss-cx-location.is-live .pss-cx-location__heading > :nth-child(3) {
	animation-delay: 0.16s;
}

.pss-cx-location.is-live .pss-cx-kicker::before {
	animation: pss-in-draw-x 0.35s ease-out backwards;
}

.pss-cx-location.is-live .pss-cx-map__frame {
	animation: pss-in-wipe 0.9s cubic-bezier(0.65, 0, 0.35, 1) 0.12s backwards;
}

[dir="rtl"] .pss-cx-location.is-live .pss-cx-map__frame {
	animation-name: pss-in-wipe-rtl;
}

.pss-cx-location.is-live .pss-cx-office {
	animation: pss-in-rise 0.5s ease-out 0.65s backwards;
}

/* =========================================================
   About page (D-020): the company drawn like one of its own
   systems. The organization chart is a distribution schematic.
   ========================================================= */

.pss-ab-story,
.pss-ab-disc,
.pss-ab-flow,
.pss-ab-iso {
	padding-block: clamp(2rem, 4vw, 3.5rem);
}

/* Who we are */
.pss-ab-story__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
	gap: clamp(2.5rem, 6vw, 6rem);
	align-items: center;
}

.pss-ab-story__title {
	max-width: 16em;
	margin: 0 0 1.25rem;
	color: var(--pss-color-navy);
	font-size: clamp(1.75rem, 3.1vw, 2.65rem);
	font-weight: 800;
	line-height: 1.18;
}

.pss-ab-story__copy .pss-cx-lead {
	font-size: 1.05rem;
}

.pss-ab-story__copy .pss-ab-story__brochure {
	margin-block-start: 1.35rem;
}

.pss-ab-story__media {
	position: relative;
	isolation: isolate;
	margin-block: 1.25rem 2.75rem;
	margin-inline: 2.75rem 1.25rem;
}

/* Drawing sheet behind the photo */
.pss-ab-story__media::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset-block: -1.25rem 1.25rem;
	inset-inline: 1.25rem -1.25rem;
	border: 1px solid rgba(31, 54, 92, 0.16);
	border-radius: 1.5rem;
	background-image:
		linear-gradient(rgba(31, 54, 92, 0.07) 1px, transparent 1px),
		linear-gradient(90deg, rgba(31, 54, 92, 0.07) 1px, transparent 1px);
	background-size: 28px 28px;
}

.pss-ab-story__photo {
	--c: var(--pss-color-red);
	--pss-corner: 1.35rem;
	position: relative;
	margin: 0;
	overflow: hidden;
	border: 1px solid rgba(31, 54, 92, 0.12);
	border-radius: 1.25rem;
	box-shadow: 0 24px 48px rgba(13, 28, 48, 0.18);
	transition: border-color 0.35s ease, box-shadow 0.35s ease, transform 0.45s ease;
}

.pss-ab-story__photo::before,
.pss-ab-story__photo::after {
	content: "";
	position: absolute;
	z-index: 2;
	pointer-events: none;
}

.pss-ab-story__photo::before {
	inset: 0.55rem;
	opacity: 0;
	background:
		linear-gradient(var(--c), var(--c)) top left / var(--pss-corner) 2px,
		linear-gradient(var(--c), var(--c)) top left / 2px var(--pss-corner),
		linear-gradient(var(--c), var(--c)) top right / var(--pss-corner) 2px,
		linear-gradient(var(--c), var(--c)) top right / 2px var(--pss-corner),
		linear-gradient(var(--c), var(--c)) bottom left / var(--pss-corner) 2px,
		linear-gradient(var(--c), var(--c)) bottom left / 2px var(--pss-corner),
		linear-gradient(var(--c), var(--c)) bottom right / var(--pss-corner) 2px,
		linear-gradient(var(--c), var(--c)) bottom right / 2px var(--pss-corner);
	background-repeat: no-repeat;
	transition: opacity 0.35s ease, --pss-corner 0.35s ease, filter 0.35s ease;
}

.pss-ab-story__photo::after {
	inset: 0;
	background: linear-gradient(125deg, transparent 42%, rgba(255, 255, 255, 0.28) 50%, transparent 58%);
	transform: translateX(-120%);
	transition: transform 0.85s ease;
}

.pss-ab-story__photo img {
	display: block;
	width: 100%;
	height: auto;
	aspect-ratio: 4 / 3;
	object-fit: cover;
	transition: transform 0.55s ease, filter 0.45s ease;
}

@media (hover: hover) and (pointer: fine) {
	[data-pss-story-media]:hover .pss-ab-story__photo {
		border-color: rgba(221, 51, 51, 0.35);
		box-shadow: 0 28px 56px rgba(13, 28, 48, 0.24), 0 0 36px rgba(221, 51, 51, 0.14);
		transform: translateY(-3px);
	}

	[data-pss-story-media]:hover .pss-ab-story__photo::before {
		opacity: 1;
		--pss-corner: 2rem;
		filter: drop-shadow(0 0 6px rgba(221, 51, 51, 0.45));
	}

	[data-pss-story-media]:hover .pss-ab-story__photo::after {
		transform: translateX(120%);
	}

	[data-pss-story-media]:hover .pss-ab-story__photo img {
		transform: scale(1.04);
		filter: brightness(1.05) saturate(1.05);
	}
}

/* Rating plate, as fixed to a piece of equipment (same interaction as home plate, D-028) */
.pss-ab-plate {
	--pss-ab-plate-u: 0.9;
	--mx: 50%;
	--my: 50%;
	--tx: 0deg;
	--ty: 0deg;
	position: absolute;
	z-index: 2;
	inset-block-end: -2.75rem;
	inset-inline-start: -2.75rem;
	width: min(calc(21rem * var(--pss-ab-plate-u)), 72%);
	box-sizing: border-box;
	padding:
		calc(1.1rem * var(--pss-ab-plate-u))
		calc(1.4rem * var(--pss-ab-plate-u))
		calc(1.05rem * var(--pss-ab-plate-u));
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: calc(0.8rem * var(--pss-ab-plate-u));
	background:
		radial-gradient(circle at 0.65rem 0.65rem, rgba(255, 255, 255, 0.4) 0 2px, transparent 2.5px),
		radial-gradient(circle at calc(100% - 0.65rem) 0.65rem, rgba(255, 255, 255, 0.4) 0 2px, transparent 2.5px),
		radial-gradient(circle at 0.65rem calc(100% - 0.65rem), rgba(255, 255, 255, 0.4) 0 2px, transparent 2.5px),
		radial-gradient(circle at calc(100% - 0.65rem) calc(100% - 0.65rem), rgba(255, 255, 255, 0.4) 0 2px, transparent 2.5px),
		radial-gradient(80% 60% at 100% 0%, rgba(221, 51, 51, 0.18), transparent 65%),
		linear-gradient(165deg, #16294a 0%, #0d1c30 100%);
	box-shadow: 0 18px 36px rgba(13, 28, 48, 0.3);
	isolation: isolate;
	overflow: hidden;
	transform: perspective(60rem) rotateX(var(--ty, 0deg)) rotateY(var(--tx, 0deg));
	transition: transform 0.35s ease-out, border-color 0.3s ease, box-shadow 0.3s ease;
}

.pss-ab-plate::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
	background-size: 28px 28px;
}

.pss-ab-plate::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: radial-gradient(14rem circle at var(--mx, 50%) var(--my, 50%), rgba(221, 51, 51, 0.24), rgba(255, 255, 255, 0.04) 45%, transparent 70%);
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

.pss-ab-plate__name {
	display: flex;
	align-items: center;
	gap: calc(0.65rem * var(--pss-ab-plate-u));
	margin: 0 0 calc(0.7rem * var(--pss-ab-plate-u));
	padding-block-end: calc(0.65rem * var(--pss-ab-plate-u));
	color: var(--pss-color-red);
	font-size: clamp(
		calc(0.92rem * var(--pss-ab-plate-u)),
		calc(1.45vw * var(--pss-ab-plate-u)),
		calc(1.08rem * var(--pss-ab-plate-u))
	);
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	border-block-end: 1px solid rgba(255, 255, 255, 0.14);
	transition: color 0.25s ease, text-shadow 0.3s ease, border-color 0.25s ease;
}

.pss-ab-plate__name::before {
	content: "";
	flex: none;
	width: calc(0.58rem * var(--pss-ab-plate-u));
	height: calc(0.58rem * var(--pss-ab-plate-u));
	border-radius: 50%;
	background: var(--pss-color-red);
	box-shadow: 0 0 0 calc(3px * var(--pss-ab-plate-u)) rgba(221, 51, 51, 0.25);
	animation: pss-plate-beat 1.8s ease-out infinite;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

#page .pss-ab-plate__rows {
	display: grid;
	gap: calc(0.4rem * var(--pss-ab-plate-u));
	margin: 0;
	padding: 0;
}

.pss-ab-plate__row {
	position: relative;
	display: grid;
	grid-template-columns: calc(6.2rem * var(--pss-ab-plate-u)) minmax(0, 1fr);
	gap: calc(0.75rem * var(--pss-ab-plate-u));
	font-size: calc(0.82rem * var(--pss-ab-plate-u));
	line-height: 1.45;
	border-radius: calc(0.35rem * var(--pss-ab-plate-u));
	transition: background-color 0.25s ease;
}

.pss-ab-plate__row::before {
	content: "";
	position: absolute;
	inset-block-start: calc(0.15rem * var(--pss-ab-plate-u));
	inset-inline-start: 0;
	width: calc(1.5rem * var(--pss-ab-plate-u));
	height: 2px;
	background: var(--pss-color-red);
	box-shadow: 0 0 8px rgba(221, 51, 51, 0.7);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s ease;
}

[dir="rtl"] .pss-ab-plate__row::before {
	transform-origin: right;
}

#page .pss-ab-plate dt {
	margin: 0;
	color: rgba(255, 255, 255, 0.55);
	font-weight: 600;
	transition: color 0.25s ease;
}

#page .pss-ab-plate dd {
	margin: 0;
	color: #fff;
	font-weight: 700;
	transition: color 0.25s ease, transform 0.25s ease;
}

@media (hover: hover) and (pointer: fine) {
	.pss-ab-plate:hover {
		border-color: rgba(221, 51, 51, 0.4);
		box-shadow: 0 22px 44px rgba(13, 28, 48, 0.32), 0 0 32px rgba(221, 51, 51, 0.18);
	}

	.pss-ab-plate:hover::after {
		opacity: 1;
	}

	.pss-ab-plate:hover .pss-ab-plate__name {
		color: #ff4a4a;
		text-shadow: 0 0 20px rgba(221, 51, 51, 0.7), 0 2px 10px rgba(221, 51, 51, 0.35);
		border-block-end-color: rgba(221, 51, 51, 0.45);
	}

	.pss-ab-plate:hover .pss-ab-plate__name::before {
		box-shadow: 0 0 0 5px rgba(221, 51, 51, 0.35), 0 0 14px rgba(221, 51, 51, 0.85);
		transform: scale(1.15);
	}

	.pss-ab-plate__row:hover {
		background-color: rgba(255, 255, 255, 0.04);
	}

	.pss-ab-plate__row:hover::before {
		transform: scaleX(1);
	}

	#page .pss-ab-plate__row:hover dt {
		color: rgba(255, 255, 255, 0.85);
	}

	#page .pss-ab-plate__row:hover dd {
		transform: translateY(-2px);
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-ab-plate__name::before {
		animation: none;
	}

	.pss-ab-plate__name,
	.pss-ab-plate,
	.pss-ab-story__photo,
	.pss-ab-story__photo img {
		transition: none !important;
		transform: none !important;
	}

	.pss-ab-plate,
	#page .pss-ab-plate dd {
		transform: none !important;
	}
}

/* Vision and mission: a large hatched letter behind each statement, as on a drawing sheet */
.pss-ab-aims {
	padding-block: clamp(2rem, 4vw, 3.25rem);
	background: var(--pss-color-tint);
	border-block: 1px solid var(--pss-color-line);
}

.pss-ab-aims__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) clamp(2rem, 4vw, 3.5rem) minmax(0, 1fr);
	align-items: stretch;
}

.pss-ab-aim {
	--mx: 50%;
	--my: 50%;
	--px: 0;
	--py: 0;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	min-height: 18rem;
	box-sizing: border-box;
	padding: clamp(1.75rem, 3vw, 2.5rem);
	border: 1px solid var(--pss-color-line);
	border-radius: 1.25rem;
	background: #fff;
	box-shadow: 0 1px 2px rgba(31, 54, 92, 0.04);
	transition: border-color 0.3s ease, box-shadow 0.3s ease;
}

/* Glow under the pointer (js/pss-about.js sets --mx and --my) */
.pss-ab-aim::before {
	content: "";
	position: absolute;
	z-index: -2;
	inset: 0;
	background: radial-gradient(20rem circle at var(--mx) var(--my), rgba(221, 51, 51, 0.08), transparent 70%);
	opacity: 0;
	transition: opacity 0.3s ease;
}

.pss-ab-aim:hover {
	border-color: rgba(221, 51, 51, 0.35);
	box-shadow: 0 18px 40px rgba(31, 54, 92, 0.1);
}

.pss-ab-aim:hover::before {
	opacity: 1;
}

.pss-ab-aim__letter {
	position: absolute;
	z-index: -1;
	inset-block-end: -0.08em;
	inset-inline-end: 6%;
	color: transparent;
	font-size: clamp(13rem, 29vw, 26rem);
	font-weight: 800;
	line-height: 0.8;
	letter-spacing: 0;
	background-image: repeating-linear-gradient(135deg, rgba(221, 51, 51, 0.17) 0 1px, transparent 1px 9px);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	-webkit-text-stroke: 1.5px rgba(221, 51, 51, 0.3);
	pointer-events: none;
	user-select: none;
	transform: translate(calc(var(--px) * -14px), calc(var(--py) * -10px));
	transition: transform 0.4s ease-out, -webkit-text-stroke-color 0.3s ease;
}

.pss-ab-aim:hover .pss-ab-aim__letter {
	-webkit-text-stroke-color: rgba(221, 51, 51, 0.6);
	animation: pss-ab-hatch 7s linear infinite;
}

/* One full period of the 135deg hatch, so the loop is seamless */
@keyframes pss-ab-hatch {
	to {
		background-position: 127.28px 0;
	}
}

.pss-ab-aim__icon {
	display: grid;
	place-items: center;
	box-sizing: border-box;
	width: 4.25rem;
	height: 4.25rem;
	margin-block-end: 1.5rem;
	color: var(--pss-color-red);
	border: 1px solid rgba(221, 51, 51, 0.3);
	border-radius: 1.1rem;
	background: #fff;
	box-shadow: 0 8px 20px rgba(221, 51, 51, 0.1);
	transition: color 0.3s ease, background-color 0.3s ease, border-color 0.3s ease;
}

.pss-ab-aim__icon svg {
	width: 2.6rem;
	height: 2.6rem;
	overflow: visible;
}

.pss-ab-aim:hover .pss-ab-aim__icon {
	color: #fff;
	border-color: var(--pss-color-red);
	background-color: var(--pss-color-red);
}

.pss-ab-aim__pupil,
.pss-ab-aim__frame {
	transform-box: fill-box;
	transform-origin: center;
	transition: transform 0.35s ease;
}

.pss-ab-aim:hover .pss-ab-aim__pupil {
	transform: scale(1.3);
}

.pss-ab-aim:hover .pss-ab-aim__frame {
	transform: scale(1.08);
}

.pss-ab-aim:hover .pss-ab-aim__arrow {
	animation: pss-ab-hit 0.5s cubic-bezier(0.3, 1.5, 0.5, 1);
}

@keyframes pss-ab-hit {
	from {
		transform: translate(7px, -7px);
		opacity: 0;
	}
}

.pss-ab-aim__title {
	margin: 0 0 0.9rem;
	color: var(--pss-color-navy);
	font-size: clamp(1.45rem, 2.2vw, 1.9rem);
	font-weight: 800;
	line-height: 1.2;
}

.pss-ab-aim__title::after {
	content: "";
	display: block;
	width: 2.5rem;
	height: 2px;
	margin-block-start: 0.7rem;
	background: var(--pss-color-red);
	transition: width 0.35s ease;
}

.pss-ab-aim:hover .pss-ab-aim__title::after {
	width: 4.5rem;
}

.pss-ab-aim__text {
	max-width: 27rem;
	margin: 0;
	color: #3b4a63;
	font-size: clamp(1rem, 1.25vw, 1.1rem);
	line-height: 1.75;
}

/* Vision leads to mission */
.pss-ab-aims__divider {
	position: relative;
	align-self: center;
	height: 2px;
	background: linear-gradient(90deg, rgba(221, 51, 51, 0.2), rgba(221, 51, 51, 0.75), rgba(221, 51, 51, 0.2));
}

.pss-ab-aims__divider::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	box-sizing: border-box;
	width: 0.75rem;
	height: 0.75rem;
	border: 2px solid var(--pss-color-red);
	border-radius: 50%;
	background: var(--pss-color-tint);
	transform: translate(-50%, -50%);
}

/* Organization chart */
.pss-ab-org {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(2.25rem, 4.5vw, 3.75rem);
	color: #fff;
	background:
		radial-gradient(60% 45% at 50% 0%, rgba(221, 51, 51, 0.14), transparent 70%),
		linear-gradient(170deg, #0d1c30 0%, #142844 55%, var(--pss-color-navy) 100%);
}

.pss-ab-org::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 30%, transparent 85%);
	mask-image: radial-gradient(ellipse 70% 60% at 50% 40%, #000 30%, transparent 85%);
}

.pss-ab-org__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 2rem;
	margin-block-end: clamp(2.5rem, 5vw, 3.5rem);
}

.pss-ab-org__head .pss-cx-title {
	margin-block-end: 0.75rem;
}

.pss-ab-org__head .pss-cx-lead {
	max-width: 38rem;
}

#page .pss-ab-org__legend {
	display: grid;
	flex: none;
	grid-template-columns: auto auto;
	gap: 0.55rem 1.5rem;
	margin: 0;
	padding: 0.85rem 1.1rem;
	list-style: none !important;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 0.75rem;
	background: rgba(255, 255, 255, 0.03);
}

#page .pss-ab-org__legend li {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0;
	padding: 0;
	color: rgba(255, 255, 255, 0.7);
	font-size: 0.8rem;
	line-height: 1.3;
	list-style: none !important;
}

#page .pss-ab-org__legend li::marker {
	content: none;
}

.pss-ab-key {
	display: inline-block;
	flex: none;
	box-sizing: border-box;
}

.pss-ab-key--lead {
	width: 0.9rem;
	height: 0.9rem;
	border: 2px solid var(--pss-color-red);
	border-radius: 50%;
}

.pss-ab-key--dept {
	width: 1rem;
	height: 0.75rem;
	border: 1px solid rgba(255, 255, 255, 0.45);
	border-radius: 0.2rem;
}

.pss-ab-key--section {
	width: 0.55rem;
	height: 0.55rem;
	margin-inline: 0.2rem;
	border: 1.5px solid var(--pss-color-red);
	border-radius: 2px;
}

.pss-ab-key--role {
	width: 0.4rem;
	height: 0.4rem;
	margin-inline: 0.3rem;
	border-radius: 50%;
	background: #ff6b6b;
}

.pss-ab-chart {
	--pss-ab-gap: 1.25rem;
	--pss-ab-drop: 2rem;
	--pss-ab-trace: rgba(221, 51, 51, 0.8);
}

.pss-ab-chart__leaders {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: var(--pss-ab-drop);
}

.pss-ab-lead {
	position: relative;
	display: inline-flex;
	align-items: center;
	gap: 0.75rem;
	margin: 0;
	padding-block: 0.5rem;
	padding-inline: 0.5rem 1.5rem;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.3;
	border: 1px solid rgba(255, 255, 255, 0.16);
	border-radius: 999px;
	background: rgba(13, 28, 48, 0.75);
	box-shadow: 0 10px 24px rgba(0, 0, 0, 0.2);
}

.pss-ab-lead--top {
	border-color: rgba(221, 51, 51, 0.65);
	box-shadow: 0 0 0 4px rgba(221, 51, 51, 0.08), 0 0 36px rgba(221, 51, 51, 0.25);
}

.pss-ab-lead::after {
	content: "";
	position: absolute;
	top: 100%;
	left: 50%;
	width: 2px;
	height: calc(var(--pss-ab-drop) + 1px);
	margin-left: -1px;
	background: var(--pss-ab-trace);
	transform-origin: top;
}

.pss-ab-chart__bus {
	position: relative;
	display: block;
	height: 2px;
	margin-block-start: var(--pss-ab-drop);
	margin-inline: calc((100% - 3 * var(--pss-ab-gap)) / 8);
	background: var(--pss-ab-trace);
	box-shadow: 0 0 12px rgba(221, 51, 51, 0.45);
}

.pss-ab-chart__bus::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 10px;
	height: 10px;
	border: 2px solid var(--pss-color-red);
	border-radius: 50%;
	background: #0f1f36;
	transform: translate(-50%, -50%);
}

.pss-ab-chart__depts {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: var(--pss-ab-gap);
	align-items: start;
}

.pss-ab-dept {
	position: relative;
	min-width: 0;
	margin-block-start: var(--pss-ab-drop);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 1rem;
	background-color: rgba(255, 255, 255, 0.045);
	transition: border-color 0.25s ease, background-color 0.25s ease;
}

.pss-ab-dept:hover {
	border-color: rgba(221, 51, 51, 0.55);
	background-color: rgba(255, 255, 255, 0.07);
}

/* Drop from the bus, and the joint where it leaves the bus */
.pss-ab-dept::before {
	content: "";
	position: absolute;
	top: calc(-1 * var(--pss-ab-drop) - 1px);
	left: 50%;
	width: 2px;
	height: var(--pss-ab-drop);
	margin-left: -1px;
	background: var(--pss-ab-trace);
	transform-origin: top;
}

.pss-ab-dept::after {
	content: "";
	position: absolute;
	top: calc(-1 * var(--pss-ab-drop) - 4px);
	left: 50%;
	width: 8px;
	height: 8px;
	margin-left: -4px;
	border-radius: 50%;
	background: var(--pss-color-red);
	box-shadow: 0 0 0 3px rgba(221, 51, 51, 0.22);
}

.pss-ab-dept__head {
	display: flex;
	align-items: center;
	gap: 0.8rem;
	padding: 1.1rem 1.15rem 1rem;
	border-block-end: 1px solid rgba(255, 255, 255, 0.1);
}

.pss-ab-dept__head h3 {
	margin: 0;
	color: #fff;
	font-size: 1.02rem;
	font-weight: 800;
	line-height: 1.3;
}

.pss-ab-dept__head p {
	margin: 0.2rem 0 0;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.8rem;
	line-height: 1.3;
}

.pss-ab-badge {
	display: grid;
	flex: none;
	place-items: center;
	box-sizing: border-box;
	width: 2.5rem;
	height: 2.5rem;
	color: #ff6b6b;
	border: 1px solid rgba(221, 51, 51, 0.55);
	border-radius: 50%;
	background: rgba(13, 28, 48, 0.6);
	transition: color 0.25s ease, background-color 0.25s ease, border-color 0.25s ease;
}

.pss-ab-badge svg {
	width: 1.15rem;
	height: 1.15rem;
}

.pss-ab-dept:hover .pss-ab-badge {
	color: #fff;
	border-color: var(--pss-color-red);
	background-color: var(--pss-color-red);
}

.pss-ab-dept__body {
	display: grid;
	gap: 1.1rem;
	padding: 1.1rem 1.15rem 1.3rem;
}

.pss-ab-dept__group h4 {
	display: flex;
	align-items: center;
	gap: 0.55rem;
	margin: 0 0 0.5rem;
	color: #fff;
	font-size: 0.92rem;
	font-weight: 700;
	line-height: 1.4;
}

.pss-ab-dept__group h4::before {
	content: "";
	flex: none;
	box-sizing: border-box;
	width: 0.55rem;
	height: 0.55rem;
	border: 1.5px solid var(--pss-color-red);
	border-radius: 2px;
}

/* Roles hang off a thin feeder like terminals */
#page .pss-ab-dept ul {
	--pss-ab-role-dot: 0.4rem;
	--pss-ab-role-rail-inset: 1.35rem;
	--pss-ab-role-dot-y: 0.675rem;
	--pss-ab-role-line-h: 1.35rem;
	position: relative;
	display: grid;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	padding-inline-start: var(--pss-ab-role-rail-inset);
	list-style: none !important;
}

#page .pss-ab-dept ul::before {
	content: "";
	position: absolute;
	top: var(--pss-ab-role-dot-y);
	bottom: calc(var(--pss-ab-role-line-h) - var(--pss-ab-role-dot-y));
	inset-inline-start: calc(var(--pss-ab-role-rail-inset) - 1.1rem + var(--pss-ab-role-dot) * 0.5);
	width: 1px;
	background: rgba(255, 255, 255, 0.2);
	transform: translateX(-50%);
}

[dir="rtl"] #page .pss-ab-dept ul::before {
	transform: translateX(50%);
}

#page .pss-ab-dept li {
	position: relative;
	margin: 0;
	padding: 0;
	color: rgba(255, 255, 255, 0.8);
	font-size: 0.9rem;
	line-height: 1.5;
	list-style: none !important;
	border: 0;
}

#page .pss-ab-dept li::before {
	content: "";
	position: absolute;
	top: var(--pss-ab-role-dot-y);
	inset-inline-start: calc(-1.1rem);
	width: var(--pss-ab-role-dot);
	height: var(--pss-ab-role-dot);
	margin-top: calc(var(--pss-ab-role-dot) * -0.5);
	border-radius: 50%;
	background: #ff6b6b;
}

#page .pss-ab-dept li::marker {
	content: none;
}

/* One draw sequence when the chart scrolls into view (js/pss-about.js) */
.pss-ab-chart.is-armed:not(.is-live) .pss-ab-lead,
.pss-ab-chart.is-armed:not(.is-live) .pss-ab-dept > * {
	opacity: 0;
}

.pss-ab-chart.is-armed:not(.is-live) .pss-ab-lead::after,
.pss-ab-chart.is-armed:not(.is-live) .pss-ab-dept::before {
	transform: scaleY(0);
}

.pss-ab-chart.is-armed:not(.is-live) .pss-ab-chart__bus {
	transform: scaleX(0);
}

.pss-ab-chart.is-armed:not(.is-live) .pss-ab-dept::after {
	transform: scale(0);
}

.pss-ab-chart.is-armed:not(.is-live) .pss-ab-dept {
	border-color: transparent;
	background-color: transparent;
}

.pss-ab-chart.is-live .pss-ab-lead {
	animation: pss-ab-fade 0.45s ease-out backwards;
}

.pss-ab-chart.is-live .pss-ab-lead + .pss-ab-lead {
	animation-delay: 0.5s;
}

.pss-ab-chart.is-live .pss-ab-lead::after {
	animation: pss-ab-drop 0.3s ease-in 0.3s backwards;
}

.pss-ab-chart.is-live .pss-ab-lead + .pss-ab-lead::after {
	animation-delay: 0.85s;
}

.pss-ab-chart.is-live .pss-ab-chart__bus {
	animation: pss-ab-bus 0.6s ease-out 1.1s backwards;
}

.pss-ab-chart.is-live .pss-ab-dept::after {
	animation: pss-ab-dot 0.3s ease-out 1.6s backwards;
}

.pss-ab-chart.is-live .pss-ab-dept::before {
	animation: pss-ab-drop 0.3s ease-in 1.7s backwards;
}

.pss-ab-chart.is-live .pss-ab-dept {
	animation: pss-ab-panel 0.5s ease-out backwards;
	animation-delay: calc(1.95s + var(--i, 0) * 0.12s);
}

.pss-ab-chart.is-live .pss-ab-dept > * {
	animation: pss-ab-fade 0.5s ease-out backwards;
	animation-delay: calc(2s + var(--i, 0) * 0.12s);
}

@keyframes pss-ab-fade {
	from {
		opacity: 0;
		transform: translateY(8px);
	}
}

@keyframes pss-ab-drop {
	from {
		transform: scaleY(0);
	}
}

@keyframes pss-ab-bus {
	from {
		transform: scaleX(0);
	}
}

@keyframes pss-ab-dot {
	from {
		transform: scale(0);
	}
}

@keyframes pss-ab-panel {
	from {
		border-color: transparent;
		background-color: transparent;
	}
}

/* What we deliver */
.pss-ab-disc__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: start;
}

#page .pss-ab-disc__list {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none !important;
}

.pss-ab-disc__item {
	position: relative;
	display: grid;
	grid-template-columns: 3rem minmax(0, 1fr);
	gap: 1.25rem;
	margin: 0;
	padding-block: 1.6rem;
	list-style: none;
	border-block-end: 1px solid var(--pss-color-line);
}

.pss-ab-disc__item:first-child {
	padding-block-start: 0.25rem;
}

.pss-ab-disc__item:last-child {
	border-block-end: 0;
}

.pss-ab-disc__item::marker {
	content: none;
}

/* The three icons share one trace: one team */
.pss-ab-disc__item:not(:last-child)::after {
	content: "";
	position: absolute;
	top: calc(1.6rem + 3rem);
	bottom: -1.6rem;
	inset-inline-start: 1.5rem;
	width: 1px;
	background: linear-gradient(rgba(221, 51, 51, 0.6), rgba(221, 51, 51, 0.2));
}

.pss-ab-disc__item:first-child::after {
	top: calc(0.25rem + 3rem);
}

.pss-ab-disc .pss-ab-badge {
	width: 3rem;
	height: 3rem;
	color: var(--pss-color-red);
	border-color: rgba(221, 51, 51, 0.4);
	background: #fff;
	box-shadow: 0 6px 16px rgba(31, 54, 92, 0.08);
}

.pss-ab-disc .pss-ab-badge svg {
	width: 1.3rem;
	height: 1.3rem;
}

.pss-ab-disc__item h3 {
	margin: 0.55rem 0 0.35rem;
	color: var(--pss-color-navy);
	font-size: 1.25rem;
	font-weight: 800;
	line-height: 1.3;
}

.pss-ab-disc__item p {
	max-width: 36rem;
	margin: 0;
	color: var(--pss-contact-muted);
	font-size: 1rem;
	line-height: 1.7;
}

/* How a project moves */
.pss-ab-flow {
	background: var(--pss-color-tint);
	border-block: 1px solid var(--pss-color-line);
}

#page .pss-ab-flow__list {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 1.5rem;
	margin: 2.25rem 0 0;
	padding: 0;
	list-style: none !important;
}

.pss-ab-flow__step {
	position: relative;
	min-width: 0;
	margin: 0;
	list-style: none;
}

.pss-ab-flow__step::marker {
	content: none;
}

.pss-ab-flow__step:not(:last-child)::after {
	content: "";
	position: absolute;
	top: 1.3rem;
	inset-inline: 3.2rem -0.9rem;
	height: 1px;
	background: linear-gradient(90deg, rgba(221, 51, 51, 0.7), rgba(221, 51, 51, 0.25));
}

.pss-ab-flow__node {
	display: grid;
	place-items: center;
	box-sizing: border-box;
	width: 2.6rem;
	height: 2.6rem;
	margin-block-end: 1rem;
	color: var(--pss-color-red);
	font-size: 0.95rem;
	font-weight: 800;
	border: 1px solid rgba(221, 51, 51, 0.6);
	border-radius: 50%;
	background: #fff;
}

/* Support does not end at handover */
.pss-ab-flow__step:last-child .pss-ab-flow__node {
	color: #fff;
	border-color: var(--pss-color-red);
	background: var(--pss-color-red);
	box-shadow: 0 0 0 5px rgba(221, 51, 51, 0.12);
}

.pss-ab-flow__step h3 {
	margin: 0 0 0.4rem;
	color: var(--pss-color-navy);
	font-size: 1.1rem;
	font-weight: 800;
	line-height: 1.3;
}

.pss-ab-flow__step p {
	margin: 0;
	color: var(--pss-contact-muted);
	font-size: 0.95rem;
	line-height: 1.65;
}

/* Certifications (About and Home): five seals, ready to wrap in a link when the files exist. */
#page .pss-iso {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 2rem 1.25rem;
	margin: 2.25rem 0 0;
	padding: 0;
	list-style: none !important;
}

#page .pss-iso li {
	margin: 0;
	list-style: none !important;
}

#page .pss-iso li::marker {
	content: none !important;
}

.pss-iso__item {
	text-align: center;
}

.pss-iso__seal {
	display: block;
	width: min(100%, 9.25rem);
	margin-inline: auto;
	transition: transform 0.25s ease;
}

.pss-iso__seal svg {
	display: block;
	width: 100%;
	height: auto;
}

.pss-iso__ring {
	fill: none;
	stroke: var(--pss-color-red);
	stroke-width: 2;
	transition: stroke-width 0.25s ease;
}

.pss-iso__disc {
	fill: var(--pss-color-navy);
}

.pss-iso__tick {
	fill: none;
	stroke: rgba(255, 255, 255, 0.35);
	stroke-width: 1;
	stroke-dasharray: 1.5 3.5;
}

.pss-iso__seal text {
	font-family: inherit;
	text-anchor: middle;
}

.pss-iso__family {
	fill: rgba(255, 255, 255, 0.78);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: 0.12em;
}

.pss-iso__number {
	fill: #fff;
	font-size: 28px;
	font-weight: 800;
}

.pss-iso__year {
	fill: rgba(255, 255, 255, 0.72);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.14em;
}

.pss-iso__name {
	margin: 0.85rem 0 0.2rem;
	color: var(--pss-color-navy);
	font-size: 0.98rem;
	font-weight: 800;
	line-height: 1.3;
}

.pss-iso__scope {
	margin: 0 auto;
	max-width: 12rem;
	color: #5c6570;
	font-size: 0.86rem;
	line-height: 1.45;
}

.pss-iso__item:hover .pss-iso__seal {
	transform: translateY(-4px);
}

.pss-iso__item:hover .pss-iso__ring {
	stroke-width: 3.5;
}

.pss-ab-iso.is-armed:not(.is-live) .pss-cx-kicker,
.pss-ab-iso.is-armed:not(.is-live) .pss-cx-title,
:is(.pss-ab-iso, .pss-hm-iso).is-armed:not(.is-live) :is(.pss-iso__seal, .pss-iso__name, .pss-iso__scope) {
	opacity: 0;
}

.pss-ab-iso.is-live .pss-cx-kicker,
.pss-ab-iso.is-live .pss-cx-title {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-ab-iso.is-live .pss-cx-title {
	animation-delay: 0.08s;
}

:is(.pss-ab-iso, .pss-hm-iso).is-live .pss-iso__seal {
	animation: pss-in-pop 0.45s cubic-bezier(0.3, 1.4, 0.5, 1) backwards;
	animation-delay: calc(0.12s + var(--i, 0) * 0.1s);
}

:is(.pss-ab-iso, .pss-hm-iso).is-live :is(.pss-iso__name, .pss-iso__scope) {
	animation: pss-in-rise 0.45s ease-out backwards;
	animation-delay: calc(0.22s + var(--i, 0) * 0.1s);
}

@media (max-width: 900px) {
	#page .pss-iso {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}
}

@media (max-width: 640px) {
	#page .pss-iso {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.pss-iso__item:last-child {
		grid-column: 1 / -1;
		max-width: 11rem;
		justify-self: center;
	}
}

/* Why clients stay + where the work goes: a full-width navy band, like the org chart */
.pss-ab-close {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(2.25rem, 4.5vw, 3.75rem);
	color: #fff;
	background:
		radial-gradient(55% 60% at 85% 100%, rgba(221, 51, 51, 0.16), transparent 70%),
		linear-gradient(165deg, var(--pss-color-navy) 0%, #142844 45%, #0d1c30 100%);
}

.pss-ab-close::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: radial-gradient(ellipse 70% 80% at 75% 55%, #000 25%, transparent 85%);
	mask-image: radial-gradient(ellipse 70% 80% at 75% 55%, #000 25%, transparent 85%);
}

.pss-ab-close__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: clamp(2.5rem, 6vw, 6rem);
	align-items: center;
}

.pss-ab-close__reasons .pss-cx-title {
	margin-block-end: 1.5rem;
}

#page .pss-ab-checks {
	display: grid;
	margin: 0;
	padding: 0;
	list-style: none !important;
	border-block-start: 1px solid rgba(255, 255, 255, 0.1);
}

#page .pss-ab-checks li {
	display: flex;
	align-items: center;
	gap: 1rem;
	margin: 0;
	padding-block: 0.95rem;
	padding-inline: 0;
	color: rgba(255, 255, 255, 0.86);
	font-size: 1rem;
	line-height: 1.55;
	list-style: none !important;
	border-block-end: 1px solid rgba(255, 255, 255, 0.1);
	transition: color 0.25s ease, padding 0.25s ease;
}

#page .pss-ab-checks li:hover {
	color: #fff;
	padding-inline-start: 0.4rem;
}

#page .pss-ab-checks li::marker {
	content: none;
}

.pss-ab-checks svg {
	flex: none;
	box-sizing: border-box;
	width: 1.75rem;
	height: 1.75rem;
	padding: 0.3rem;
	color: #ff6b6b;
	border: 1px solid rgba(221, 51, 51, 0.55);
	border-radius: 50%;
	transition: color 0.25s ease, background-color 0.25s ease;
}

.pss-ab-checks li:hover svg {
	color: #fff;
	background-color: var(--pss-color-red);
}

.pss-ab-close__where {
	padding: clamp(1.75rem, 3vw, 2.5rem);
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 1.25rem;
	background: rgba(255, 255, 255, 0.04);
	box-shadow: 0 24px 48px rgba(0, 0, 0, 0.25);
}

.pss-ab-close__where .pss-cx-title {
	margin-block-end: 0.75rem;
}

.pss-ab-close__pin {
	position: relative;
	display: grid;
	place-items: center;
	box-sizing: border-box;
	width: 3.25rem;
	height: 3.25rem;
	margin-block-end: 1.25rem;
	color: #ff6b6b;
	border: 1px solid rgba(221, 51, 51, 0.55);
	border-radius: 0.9rem;
	background: rgba(13, 28, 48, 0.6);
}

.pss-ab-close__pin svg {
	width: 1.5rem;
	height: 1.5rem;
}

/* A slow location ping */
.pss-ab-close__pin::after {
	content: "";
	position: absolute;
	inset: -1px;
	border: 1px solid rgba(221, 51, 51, 0.6);
	border-radius: inherit;
	animation: pss-ab-ping 2.8s ease-out infinite;
}

@keyframes pss-ab-ping {
	to {
		opacity: 0;
		transform: scale(1.55);
	}
}

.pss-ab-close__cta {
	margin-block-start: 1.5rem;
	padding-block-start: 1.5rem;
	border-block-start: 1px solid rgba(255, 255, 255, 0.12);
}

.pss-ab-close__cta p {
	margin: 0 0 1.1rem;
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	line-height: 1.55;
}

/* =========================================================
   Section entrances. js/pss-reveal.js adds .is-armed to each
   [data-pss-reveal] that starts off screen, then .is-live once
   it scrolls into view. Each section has its own short sequence.
   ========================================================= */

.pss-company-page {
	--pss-ab-dir: 1;
}

[dir="rtl"] .pss-company-page {
	--pss-ab-dir: -1;
}

@keyframes pss-ab-rise {
	from {
		opacity: 0;
		transform: translateY(22px);
	}
}

@keyframes pss-ab-pop {
	from {
		opacity: 0;
		transform: scale(0.6);
	}
}

@keyframes pss-ab-slide {
	from {
		opacity: 0;
		transform: translateX(calc(var(--pss-ab-dir) * -18px));
	}
}

@keyframes pss-ab-wipe {
	from {
		clip-path: inset(0 100% 0 0);
	}

	to {
		clip-path: inset(0 0 0 0);
	}
}

/* Who we are: text rises, the photo is uncovered, then the plate lands */
.pss-ab-story.is-armed:not(.is-live) .pss-ab-story__copy > *,
.pss-ab-story.is-armed:not(.is-live) .pss-ab-plate,
.pss-ab-story.is-armed:not(.is-live) .pss-ab-story__media::before {
	opacity: 0;
}

.pss-ab-story.is-armed:not(.is-live) .pss-ab-story__photo img {
	clip-path: polygon(0 0, 0 0, 0 0);
	transform: scale(1.06);
	filter: saturate(0.45) brightness(0.8);
}

.pss-ab-story.is-armed:not(.is-live) .pss-ab-story__photo::before {
	opacity: 0;
}

.pss-ab-story.is-live .pss-ab-story__copy > * {
	animation: pss-ab-rise 0.6s ease-out backwards;
}

.pss-ab-story.is-live .pss-ab-story__copy > :nth-child(2) {
	animation-delay: 0.1s;
}

.pss-ab-story.is-live .pss-ab-story__copy > :nth-child(3) {
	animation-delay: 0.2s;
}

.pss-ab-story.is-live .pss-ab-story__copy > :nth-child(4) {
	animation-delay: 0.3s;
}

.pss-ab-story.is-live .pss-ab-story__media::before {
	animation: pss-ab-fade 0.6s ease-out 0.1s backwards;
}

.pss-ab-story.is-live .pss-ab-story__photo img {
	animation: pss-ab-photo-in 0.95s cubic-bezier(0.22, 1, 0.36, 1) 0.2s backwards;
}

.pss-ab-story.is-live .pss-ab-story__photo::before {
	animation: pss-ab-fade 0.55s ease-out 0.65s backwards;
}

@keyframes pss-ab-photo-in {
	from {
		clip-path: polygon(0 0, 0 0, 0 0);
		transform: scale(1.08);
		filter: saturate(0.45) brightness(0.8);
	}

	to {
		clip-path: polygon(0 0, 200% 0, 0 200%);
		transform: none;
		filter: none;
	}
}

.pss-ab-story.is-live .pss-ab-plate {
	animation: pss-ab-rise 0.55s ease-out 0.9s backwards;
}

/* Vision and mission: panels rise, icons pop, the connector draws, the letters surface */
.pss-ab-aims.is-armed:not(.is-live) .pss-ab-aim,
.pss-ab-aims.is-armed:not(.is-live) .pss-ab-aim__icon {
	opacity: 0;
}

.pss-ab-aims.is-armed:not(.is-live) .pss-ab-aims__divider {
	transform: scaleX(0);
}

.pss-ab-aims.is-armed:not(.is-live) .pss-ab-aim__letter {
	opacity: 0;
	translate: 0 18%;
}

.pss-ab-aims.is-live .pss-ab-aim {
	animation: pss-ab-rise 0.6s ease-out backwards;
}

.pss-ab-aims.is-live .pss-ab-aim--mission {
	animation-delay: 0.15s;
}

.pss-ab-aims.is-live .pss-ab-aim__icon {
	animation: pss-ab-pop 0.45s cubic-bezier(0.3, 1.5, 0.5, 1) 0.35s backwards;
}

.pss-ab-aims.is-live .pss-ab-aim--mission .pss-ab-aim__icon {
	animation-delay: 0.5s;
}

.pss-ab-aims.is-live .pss-ab-aims__divider {
	animation: pss-ab-bus 0.5s ease-out 0.45s backwards;
}

/* The letter uses a transition so its hover animation is never replaced */
.pss-ab-aim__letter {
	transition:
		transform 0.4s ease-out,
		-webkit-text-stroke-color 0.3s ease,
		opacity 0.9s ease 0.4s,
		translate 1s cubic-bezier(0.2, 0.7, 0.2, 1) 0.4s;
}

.pss-ab-aim--mission .pss-ab-aim__letter {
	transition-delay: 0s, 0s, 0.55s, 0.55s;
}

/* What we deliver: the shared trace runs down and lights each discipline in turn */
.pss-ab-disc.is-armed:not(.is-live) .pss-ab-disc__head > *,
.pss-ab-disc.is-armed:not(.is-live) .pss-ab-disc__item .pss-ab-badge,
.pss-ab-disc.is-armed:not(.is-live) .pss-ab-disc__item > div {
	opacity: 0;
}

.pss-ab-disc.is-armed:not(.is-live) .pss-ab-disc__item::after {
	transform: scaleY(0);
}

.pss-ab-disc__item::after {
	transform-origin: top;
}

.pss-ab-disc.is-live .pss-ab-disc__head > * {
	animation: pss-ab-rise 0.6s ease-out backwards;
}

.pss-ab-disc.is-live .pss-ab-disc__head > :nth-child(2) {
	animation-delay: 0.1s;
}

.pss-ab-disc.is-live .pss-ab-disc__item .pss-ab-badge {
	animation: pss-ab-pop 0.45s cubic-bezier(0.3, 1.5, 0.5, 1) backwards;
	animation-delay: calc(0.25s + var(--i, 0) * 0.45s);
}

.pss-ab-disc.is-live .pss-ab-disc__item > div {
	animation: pss-ab-slide 0.55s ease-out backwards;
	animation-delay: calc(0.35s + var(--i, 0) * 0.45s);
}

.pss-ab-disc.is-live .pss-ab-disc__item::after {
	animation: pss-ab-drop 0.4s ease-in backwards;
	animation-delay: calc(0.5s + var(--i, 0) * 0.45s);
}

/* How a project moves: each step lights up, then the line runs to the next */
.pss-ab-flow.is-armed:not(.is-live) .pss-container > .pss-cx-kicker,
.pss-ab-flow.is-armed:not(.is-live) .pss-container > .pss-cx-title,
.pss-ab-flow.is-armed:not(.is-live) .pss-ab-flow__node,
.pss-ab-flow.is-armed:not(.is-live) .pss-ab-flow__step h3,
.pss-ab-flow.is-armed:not(.is-live) .pss-ab-flow__step p {
	opacity: 0;
}

.pss-ab-flow.is-armed:not(.is-live) .pss-ab-flow__step::after {
	transform: scaleX(0);
}

.pss-ab-flow__step::after {
	transform-origin: left;
}

[dir="rtl"] .pss-ab-flow__step::after {
	transform-origin: right;
}

.pss-ab-flow.is-live .pss-container > .pss-cx-kicker,
.pss-ab-flow.is-live .pss-container > .pss-cx-title {
	animation: pss-ab-rise 0.6s ease-out backwards;
}

.pss-ab-flow.is-live .pss-container > .pss-cx-title {
	animation-delay: 0.1s;
}

.pss-ab-flow.is-live .pss-ab-flow__node {
	animation: pss-ab-pop 0.45s cubic-bezier(0.3, 1.5, 0.5, 1) backwards;
	animation-delay: calc(0.25s + var(--i, 0) * 0.4s);
}

.pss-ab-flow.is-live .pss-ab-flow__step h3,
.pss-ab-flow.is-live .pss-ab-flow__step p {
	animation: pss-ab-fade 0.5s ease-out backwards;
	animation-delay: calc(0.35s + var(--i, 0) * 0.4s);
}

.pss-ab-flow.is-live .pss-ab-flow__step::after {
	animation: pss-ab-bus 0.4s ease-in-out backwards;
	animation-delay: calc(0.5s + var(--i, 0) * 0.4s);
}

/* Closing band: reasons tick in one by one, then the location card rises */
.pss-ab-close.is-armed:not(.is-live) .pss-ab-close__reasons > .pss-cx-kicker,
.pss-ab-close.is-armed:not(.is-live) .pss-ab-close__reasons > .pss-cx-title,
.pss-ab-close.is-armed:not(.is-live) .pss-ab-checks li,
.pss-ab-close.is-armed:not(.is-live) .pss-ab-close__where {
	opacity: 0;
}

.pss-ab-close.is-live .pss-ab-close__reasons > .pss-cx-kicker,
.pss-ab-close.is-live .pss-ab-close__reasons > .pss-cx-title {
	animation: pss-ab-rise 0.6s ease-out backwards;
}

.pss-ab-close.is-live .pss-ab-close__reasons > .pss-cx-title {
	animation-delay: 0.1s;
}

.pss-ab-close.is-live .pss-ab-checks li {
	animation: pss-ab-slide 0.5s ease-out backwards;
	animation-delay: calc(0.25s + var(--i, 0) * 0.09s);
}

.pss-ab-close.is-live .pss-ab-checks svg {
	animation: pss-ab-pop 0.4s cubic-bezier(0.3, 1.5, 0.5, 1) backwards;
	animation-delay: calc(0.35s + var(--i, 0) * 0.09s);
}

.pss-ab-close.is-live .pss-ab-close__where {
	animation: pss-ab-rise 0.7s ease-out 0.35s backwards;
}

@media screen and (max-width: 1023px) {
	.pss-ab-org__head {
		flex-direction: column;
		align-items: flex-start;
	}

	.pss-ab-chart__depts {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		margin-block-start: var(--pss-ab-drop);
	}

	.pss-ab-chart__bus,
	.pss-ab-lead:last-child::after,
	.pss-ab-dept::before,
	.pss-ab-dept::after {
		display: none;
	}

	.pss-ab-dept {
		margin-block-start: 0;
	}
}

@media screen and (max-width: 900px) {
	.pss-ab-story__grid,
	.pss-ab-disc__grid {
		grid-template-columns: 1fr;
	}

	.pss-ab-story__media {
		max-width: 34rem;
		margin-inline: 1.5rem 0.75rem;
	}

	.pss-ab-story__media::before {
		inset-inline: 0.75rem -0.75rem;
	}

	.pss-ab-plate {
		inset-inline-start: -1.5rem;
	}

	#page .pss-ab-flow__list {
		grid-template-columns: 1fr;
		gap: 1.25rem;
	}

	.pss-ab-flow__step {
		display: grid;
		grid-template-columns: 2.6rem minmax(0, 1fr);
		column-gap: 1rem;
	}

	.pss-ab-flow__node {
		grid-row: span 2;
		margin: 0;
	}

	.pss-ab-flow__step h3 {
		margin-block-start: 0.55rem;
	}

	.pss-ab-flow__step:not(:last-child)::after {
		top: 3rem;
		bottom: -1.05rem;
		inset-inline: 1.3rem auto;
		width: 1px;
		height: auto;
		background: linear-gradient(rgba(221, 51, 51, 0.7), rgba(221, 51, 51, 0.25));
		transform-origin: top;
	}

	.pss-ab-flow.is-armed:not(.is-live) .pss-ab-flow__step::after {
		transform: scaleY(0);
	}

	.pss-ab-flow.is-live .pss-ab-flow__step::after {
		animation-name: pss-ab-drop;
	}

	.pss-ab-close__grid {
		grid-template-columns: 1fr;
	}
}

@media screen and (max-width: 767px) {
	.pss-ab-aims__grid {
		grid-template-columns: 1fr;
	}

	.pss-ab-aims__divider {
		justify-self: center;
		width: 2px;
		height: 2.25rem;
		background: linear-gradient(rgba(221, 51, 51, 0.2), rgba(221, 51, 51, 0.75), rgba(221, 51, 51, 0.2));
		transform-origin: top;
	}

	.pss-ab-aims.is-armed:not(.is-live) .pss-ab-aims__divider {
		transform: scaleY(0);
	}

	.pss-ab-aims.is-live .pss-ab-aims__divider {
		animation-name: pss-ab-drop;
	}

	.pss-ab-aim {
		min-height: 0;
	}

	.pss-ab-aim__letter {
		font-size: 15rem;
	}
}

@media screen and (max-width: 640px) {
	.pss-ab-chart__depts {
		grid-template-columns: 1fr;
	}

	#page .pss-ab-org__legend {
		grid-template-columns: repeat(2, auto);
	}

	.pss-ab-story__media {
		margin-block-end: 0;
		margin-inline: 0 0.75rem;
	}

	.pss-ab-plate {
		position: relative;
		inset: auto;
		width: auto;
		margin: -2.25rem 1rem 0;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-ab-chart *,
	.pss-ab-chart *::before,
	.pss-ab-chart *::after {
		animation: none !important;
	}

	.pss-ab-dept,
	.pss-ab-badge {
		transition: none;
	}

	.pss-ab-aim *,
	.pss-ab-aim *::after,
	[data-pss-reveal] *,
	[data-pss-reveal] *::before,
	[data-pss-reveal] *::after,
	.pss-ab-close__pin::after {
		animation: none !important;
		transition: none !important;
	}

	.pss-ab-aim:hover .pss-ab-aim__pupil,
	.pss-ab-aim:hover .pss-ab-aim__frame {
		transform: none;
	}
}

/* =========================================================
   Home page (D-022). Under the slider the company is told as
   one system: a short introduction, the service line (the one
   bold element), the Why ring, clients, certifications, and a
   closing site-survey band. Every section enters once.
   ========================================================= */

#page .pss-home-row.vc_row {
	--pss-in-dir: 1;
	position: relative;
	left: 50%;
	width: 100vw !important;
	max-width: 100vw !important;
	margin-left: -50vw !important;
	margin-right: -50vw !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
	box-sizing: border-box !important;
	background: #fff !important;
}

[dir="rtl"] #page .pss-home-row.vc_row {
	--pss-in-dir: -1;
}

#page .pss-home-row .upb_row_bg {
	background: transparent !important;
}

#page .pss-home-row > .wpb_column,
#page .pss-home-row > .wpb_column > .vc_column-inner,
#page .pss-home-row .wpb_wrapper {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.pss-hm-container {
	width: min(84rem, calc(100% - 2 * clamp(1.1rem, 3vw, 1.5rem)));
	margin-inline: auto;
}

/* Text link with an arrow, used under a lead paragraph */
#page .pss-hm-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	margin-block-start: 1.6rem;
	padding-block-end: 0.2rem;
	color: var(--pss-color-navy);
	font-size: 0.95rem;
	font-weight: 800;
	text-decoration: none;
	border-block-end: 2px solid var(--pss-color-red);
}

.pss-hm-link svg {
	width: 1.1rem;
	height: 1.1rem;
	color: var(--pss-color-red);
	transition: transform 0.25s ease;
}

[dir="rtl"] .pss-hm-link svg {
	scale: -1 1;
}

.pss-hm-link:hover svg,
.pss-hm-link:focus-visible svg {
	transform: translateX(calc(var(--pss-in-dir) * 4px));
}

/* Introduction: one statement and the company plate */
.pss-hm-intro {
	position: relative;
	isolation: isolate;
	padding-block: clamp(2.25rem, 4.5vw, 3.75rem);
}

.pss-hm-intro::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset-block: 0;
	inset-inline-end: 0;
	width: 55%;
	background-image:
		linear-gradient(rgba(31, 54, 92, 0.06) 1px, transparent 1px),
		linear-gradient(90deg, rgba(31, 54, 92, 0.06) 1px, transparent 1px);
	background-size: 32px 32px;
	-webkit-mask-image: radial-gradient(70% 70% at 60% 50%, #000, transparent);
	mask-image: radial-gradient(70% 70% at 60% 50%, #000, transparent);
}

.pss-hm-intro__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
	gap: clamp(2.5rem, 6vw, 6rem);
	align-items: center;
}

.pss-hm-intro__title {
	max-width: 17em;
	margin: 0 0 1.25rem;
	color: var(--pss-color-navy);
	font-size: clamp(1.85rem, 3.3vw, 2.85rem);
	font-weight: 800;
	line-height: 1.16;
}

.pss-hm-intro .pss-cx-lead {
	font-size: 1.06rem;
}

/* Company plate, as fixed to a piece of equipment */
.pss-hm-plate {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding: clamp(1.4rem, 2.4vw, 2rem);
	color: #fff;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 1rem;
	background:
		radial-gradient(circle at 0.8rem 0.8rem, rgba(255, 255, 255, 0.4) 0 2px, transparent 2.5px),
		radial-gradient(circle at calc(100% - 0.8rem) 0.8rem, rgba(255, 255, 255, 0.4) 0 2px, transparent 2.5px),
		radial-gradient(circle at 0.8rem calc(100% - 0.8rem), rgba(255, 255, 255, 0.4) 0 2px, transparent 2.5px),
		radial-gradient(circle at calc(100% - 0.8rem) calc(100% - 0.8rem), rgba(255, 255, 255, 0.4) 0 2px, transparent 2.5px),
		radial-gradient(80% 60% at 100% 0%, rgba(221, 51, 51, 0.18), transparent 65%),
		linear-gradient(165deg, #16294a 0%, #0d1c30 100%);
	box-shadow: 0 24px 48px rgba(13, 28, 48, 0.22);
}

.pss-hm-plate::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.04) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.04) 1px, transparent 1px);
	background-size: 28px 28px;
}

.pss-hm-plate__name {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin: 0 0 0.5rem;
	padding-block-end: 0.9rem;
	color: var(--pss-color-red);
	font-size: clamp(0.98rem, 1.65vw, 1.22rem);
	font-weight: 800;
	line-height: 1.35;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border-block-end: 1px solid rgba(255, 255, 255, 0.14);
	transition: color 0.25s ease, text-shadow 0.3s ease, border-color 0.25s ease, letter-spacing 0.3s ease, transform 0.3s ease;
}

/* Status light: beats like a live indicator (owner's request, beside the plate title). */
.pss-hm-plate__name::before {
	content: "";
	flex: none;
	width: 0.58rem;
	height: 0.58rem;
	border-radius: 50%;
	background: var(--pss-color-red);
	box-shadow: 0 0 0 3px rgba(221, 51, 51, 0.25);
	animation: pss-plate-beat 1.8s ease-out infinite;
	transition: box-shadow 0.3s ease, transform 0.3s ease;
}

@keyframes pss-plate-beat {
	0% {
		transform: scale(1);
		box-shadow: 0 0 0 0 rgba(221, 51, 51, 0.6), 0 0 6px rgba(221, 51, 51, 0.6);
	}

	35% {
		transform: scale(1.35);
	}

	70% {
		transform: scale(1);
		box-shadow: 0 0 0 9px rgba(221, 51, 51, 0), 0 0 6px rgba(221, 51, 51, 0.6);
	}

	100% {
		transform: scale(1);
		box-shadow: 0 0 0 0 rgba(221, 51, 51, 0), 0 0 6px rgba(221, 51, 51, 0.6);
	}
}

/* Pointer: the plate leans toward the mouse, a light follows it, and the cell under it lights up. */
.pss-hm-plate {
	transform: perspective(60rem) rotateX(var(--ty, 0deg)) rotateY(var(--tx, 0deg));
	transition: transform 0.35s ease-out, border-color 0.3s ease, box-shadow 0.3s ease;
}

.pss-hm-plate::after {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: radial-gradient(16rem circle at var(--mx, 50%) var(--my, 50%), rgba(221, 51, 51, 0.24), rgba(255, 255, 255, 0.04) 45%, transparent 70%);
	opacity: 0;
	transition: opacity 0.3s ease;
	pointer-events: none;
}

.pss-hm-plate__cell {
	position: relative;
	transition: background-color 0.25s ease;
}

.pss-hm-plate__cell::before {
	content: "";
	position: absolute;
	inset-block-start: -1px;
	inset-inline-start: 1rem;
	width: 1.75rem;
	height: 2px;
	background: var(--pss-color-red);
	box-shadow: 0 0 8px rgba(221, 51, 51, 0.7);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s ease;
}

[dir="rtl"] .pss-hm-plate__cell::before {
	transform-origin: right;
}

.pss-hm-plate__cell:nth-child(even)::before {
	inset-inline-start: 1.4rem;
}

#page .pss-hm-plate dd,
#page .pss-hm-plate dt {
	transition: color 0.25s ease, transform 0.25s ease;
}

@media (hover: hover) and (pointer: fine) {
	.pss-hm-plate:hover {
		border-color: rgba(221, 51, 51, 0.4);
		box-shadow: 0 28px 56px rgba(13, 28, 48, 0.3), 0 0 32px rgba(221, 51, 51, 0.18);
	}

	.pss-hm-plate:hover::after {
		opacity: 1;
	}

	.pss-hm-plate__cell:hover {
		background-color: rgba(255, 255, 255, 0.04);
	}

	.pss-hm-plate__cell:hover::before {
		transform: scaleX(1);
	}

	#page .pss-hm-plate__cell:hover dd {
		transform: translateY(-2px);
	}

	#page .pss-hm-plate__cell:hover dt {
		color: rgba(255, 255, 255, 0.85);
	}

	.pss-hm-plate:hover .pss-hm-plate__name {
		color: #ff4a4a;
		letter-spacing: 0.17em;
		text-shadow: 0 0 20px rgba(221, 51, 51, 0.7), 0 2px 10px rgba(221, 51, 51, 0.35);
		border-block-end-color: rgba(221, 51, 51, 0.45);
		transform: scale(1.02);
		transform-origin: left center;
	}

	[dir="rtl"] .pss-hm-plate:hover .pss-hm-plate__name {
		transform-origin: right center;
	}

	.pss-hm-plate:hover .pss-hm-plate__name::before {
		box-shadow: 0 0 0 5px rgba(221, 51, 51, 0.35), 0 0 14px rgba(221, 51, 51, 0.85);
		transform: scale(1.15);
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-hm-plate__name::before {
		animation: none;
	}

	.pss-hm-plate__name {
		transition: none;
		transform: none !important;
	}

	.pss-hm-plate,
	#page .pss-hm-plate dd,
	#page .pss-hm-plate dt {
		transform: none !important;
		transition: none;
	}

	.pss-hm-plate__cell,
	.pss-hm-plate__cell::before {
		transition: none;
	}
}

#page .pss-hm-plate__grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	margin: 0;
	padding: 0;
}

.pss-hm-plate__cell {
	display: flex;
	flex-direction: column-reverse;
	justify-content: flex-end;
	gap: 0.45rem;
	padding: 1.15rem 1rem 1.1rem;
}

.pss-hm-plate__cell:nth-child(even) {
	border-inline-start: 1px solid rgba(255, 255, 255, 0.12);
	padding-inline-start: 1.4rem;
}

.pss-hm-plate__cell:nth-child(n + 3) {
	border-block-start: 1px solid rgba(255, 255, 255, 0.12);
}

#page .pss-hm-plate dd {
	margin: 0;
	color: #fff;
	font-size: clamp(1.5rem, 2.3vw, 2.05rem);
	font-weight: 800;
	line-height: 1.05;
}

#page .pss-hm-plate dt {
	margin: 0;
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.82rem;
	font-weight: 600;
	line-height: 1.4;
}

.pss-hm-intro.is-armed:not(.is-live) .pss-hm-intro__copy > *,
.pss-hm-intro.is-armed:not(.is-live) .pss-hm-plate__cell {
	opacity: 0;
}

.pss-hm-intro.is-armed:not(.is-live) .pss-hm-plate {
	clip-path: inset(0 100% 0 0);
}

.pss-hm-intro.is-live .pss-hm-intro__copy > * {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-hm-intro.is-live .pss-hm-intro__copy > :nth-child(2) { animation-delay: 0.08s; }
.pss-hm-intro.is-live .pss-hm-intro__copy > :nth-child(3) { animation-delay: 0.16s; }
.pss-hm-intro.is-live .pss-hm-intro__copy > :nth-child(4) { animation-delay: 0.24s; }

.pss-hm-intro.is-live .pss-hm-plate {
	animation: pss-in-wipe 0.7s cubic-bezier(0.65, 0, 0.35, 1) 0.1s backwards;
}

[dir="rtl"] .pss-hm-intro.is-live .pss-hm-plate {
	animation-name: pss-in-wipe-rtl;
}

.pss-hm-intro.is-live .pss-hm-plate__cell {
	animation: pss-in-rise 0.45s ease-out backwards;
	animation-delay: calc(0.5s + var(--i, 0) * 0.08s);
}

/* Service line: power feeds automation, automation drives security */
.pss-hm-sys {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(2.25rem, 4.5vw, 3.75rem);
	color: #fff;
	background:
		radial-gradient(50% 55% at 0% 0%, rgba(221, 51, 51, 0.14), transparent 70%),
		linear-gradient(165deg, var(--pss-color-navy) 0%, #142844 45%, #0d1c30 100%);
}

.pss-hm-sys::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: linear-gradient(180deg, #000, rgba(0, 0, 0, 0.35));
	mask-image: linear-gradient(180deg, #000, rgba(0, 0, 0, 0.35));
}

.pss-hm-sys__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 1rem 4rem;
	align-items: end;
	margin-block-end: clamp(2.5rem, 5vw, 4rem);
}

.pss-hm-sys__head .pss-cx-title {
	margin: 0;
	font-size: clamp(1.75rem, 3vw, 2.6rem);
}

.pss-hm-sys__head .pss-cx-lead {
	justify-self: end;
	max-width: 34rem;
}

.pss-hm-sys__map {
	--disc: 4rem;
	--gap: clamp(1.5rem, 3vw, 3rem);
	position: relative;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: var(--gap);
}

.pss-hm-sys__bus {
	position: absolute;
	z-index: 0;
	top: calc(var(--disc) / 2 - 1px);
	inset-inline-start: calc(var(--disc) / 2);
	width: calc((100% + var(--gap)) / 3);
	height: 2px;
	background: var(--pss-color-red);
	box-shadow: 0 0 12px rgba(221, 51, 51, 0.55);
	transform-origin: left center;
}

[dir="rtl"] .pss-hm-sys__bus {
	transform-origin: right center;
}

.pss-hm-sys__bus--control {
	inset-inline-start: calc(var(--disc) / 2 + (100% + var(--gap)) / 3);
}

.pss-hm-sys__line {
	--tone: var(--pss-color-red);
	--feed: rgba(221, 51, 51, 0.5);
	position: relative;
	z-index: 1;
	min-width: 0;
}

.pss-hm-sys__lead {
	position: relative;
	padding-block-end: 0.9rem;
}

.pss-hm-sys__lead::after {
	content: "";
	position: absolute;
	top: var(--disc);
	bottom: 0;
	inset-inline-start: calc(var(--disc) / 2 - 1px);
	width: 2px;
	background: var(--feed);
	transform-origin: top;
}

.pss-hm-sys__icon {
	display: grid;
	place-items: center;
	width: var(--disc);
	height: var(--disc);
	box-sizing: border-box;
	color: #fff;
	border: 2px solid var(--pss-color-red);
	border-radius: 50%;
	background: #0d1c30;
	box-shadow: 0 0 0 6px rgba(221, 51, 51, 0.12);
}

.pss-hm-sys__icon svg {
	width: 1.6rem;
	height: 1.6rem;
}

#page .pss-hm-sys__lead h3,
.pss-hm-sys__lead p {
	padding-inline-start: calc(var(--disc) / 2 + 1.95rem);
}

#page .pss-hm-sys__lead h3 {
	margin: 1.1rem 0 0;
	color: var(--pss-color-red);
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1.25;
}

.pss-hm-sys__lead p {
	max-width: 22rem;
	margin: 0.3rem 0 0;
	color: rgba(255, 255, 255, 0.66);
	font-size: 0.9rem;
	line-height: 1.5;
}

#page .pss-hm-sys__list {
	margin: 0;
	padding: 0;
	list-style: none;
}

#page .pss-hm-sys__list li {
	position: relative;
	margin: 0;
	padding-inline-start: calc(var(--disc) / 2 + 1.1rem);
	list-style: none;
}

/* Feeder from the disc, with a terminal at each service */
.pss-hm-sys__list li::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	inset-inline-start: calc(var(--disc) / 2 - 1px);
	width: 2px;
	background: var(--feed);
	transform-origin: top;
}

.pss-hm-sys__list li:last-child::before {
	bottom: auto;
	height: 1.35rem;
}

.pss-hm-sys__list li::after {
	content: "";
	position: absolute;
	top: 1rem;
	inset-inline-start: calc(var(--disc) / 2 - 6px);
	width: 12px;
	height: 12px;
	box-sizing: border-box;
	border: 2px solid var(--tone);
	border-radius: 50%;
	background: #0d1c30;
	transition: background-color 0.2s ease, border-color 0.2s ease, box-shadow 0.2s ease;
}

.pss-hm-sys__list li:hover::after,
.pss-hm-sys__list li:focus-within::after {
	border-color: var(--pss-color-red);
	background: var(--pss-color-red);
	box-shadow: 0 0 0 4px rgba(221, 51, 51, 0.25);
}

#page .pss-hm-sys__entry {
	display: block;
	padding: 0.6rem 0.85rem;
	color: #fff;
	text-decoration: none;
	border-radius: 0.6rem;
	transition: background-color 0.2s ease;
}

#page .pss-hm-sys__list a:hover,
#page .pss-hm-sys__list a:focus-visible {
	background: rgba(255, 255, 255, 0.06);
}

#page .pss-hm-sys__list a:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 2px;
}

.pss-hm-sys__name {
	display: flex;
	align-items: center;
	gap: 0.45rem;
	font-size: 1rem;
	font-weight: 800;
	line-height: 1.4;
}

.pss-hm-sys__name::after {
	content: "\2192";
	color: var(--pss-color-red);
	opacity: 0;
	transform: translateX(calc(var(--pss-in-dir) * -4px));
	transition: opacity 0.2s ease, transform 0.2s ease;
}

[dir="rtl"] .pss-hm-sys__name::after {
	content: "\2190";
}

.pss-hm-sys__list a:hover .pss-hm-sys__name::after,
.pss-hm-sys__list a:focus-visible .pss-hm-sys__name::after {
	opacity: 1;
	transform: none;
}

.pss-hm-sys__desc {
	display: block;
	margin-block-start: 0.15rem;
	color: rgba(255, 255, 255, 0.62);
	font-size: 0.86rem;
	line-height: 1.5;
}

.pss-hm-sys__foot {
	display: flex;
	margin-block-start: clamp(2.5rem, 4vw, 3.5rem);
	padding-block-start: 1.5rem;
	border-block-start: 1px solid rgba(255, 255, 255, 0.12);
}

.pss-hm-sys__head.is-armed:not(.is-live) > div > *,
.pss-hm-sys__head.is-armed:not(.is-live) > .pss-cx-lead {
	opacity: 0;
}

.pss-hm-sys__head.is-live > div > *,
.pss-hm-sys__head.is-live > .pss-cx-lead {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-hm-sys__head.is-live .pss-cx-title { animation-delay: 0.08s; }
.pss-hm-sys__head.is-live > .pss-cx-lead { animation-delay: 0.16s; }

/* The line powers up: each disc lights, the bus runs to the next, then its services drop in */
.pss-hm-sys__map.is-armed:not(.is-live) .pss-hm-sys__icon,
.pss-hm-sys__map.is-armed:not(.is-live) .pss-hm-sys__lead h3,
.pss-hm-sys__map.is-armed:not(.is-live) .pss-hm-sys__lead p,
.pss-hm-sys__map.is-armed:not(.is-live) .pss-hm-sys__entry,
.pss-hm-sys__map.is-armed:not(.is-live) .pss-hm-sys__list li::after {
	opacity: 0;
}

.pss-hm-sys__map.is-armed:not(.is-live) .pss-hm-sys__bus {
	transform: scaleX(0);
}

.pss-hm-sys__map.is-armed:not(.is-live) .pss-hm-sys__lead::after,
.pss-hm-sys__map.is-armed:not(.is-live) .pss-hm-sys__list li::before {
	transform: scaleY(0);
}

.pss-hm-sys__map.is-live .pss-hm-sys__icon {
	animation: pss-in-pop 0.45s cubic-bezier(0.3, 1.4, 0.5, 1) backwards;
	animation-delay: calc(var(--d) * 0.32s);
}

.pss-hm-sys__map.is-live .pss-hm-sys__lead h3,
.pss-hm-sys__map.is-live .pss-hm-sys__lead p {
	animation: pss-in-slide 0.45s ease-out backwards;
	animation-delay: calc(0.1s + var(--d) * 0.32s);
}

.pss-hm-sys__map.is-live .pss-hm-sys__bus {
	animation: pss-in-draw-x 0.35s ease-in-out 0.2s backwards;
}

.pss-hm-sys__map.is-live .pss-hm-sys__bus--control {
	animation-delay: 0.52s;
}

.pss-hm-sys__map.is-live .pss-hm-sys__lead::after,
.pss-hm-sys__map.is-live .pss-hm-sys__list li::before {
	animation: pss-in-draw-y 0.3s ease-out backwards;
	animation-delay: calc(0.25s + var(--d) * 0.32s + var(--i, 0) * 0.06s);
}

.pss-hm-sys__map.is-live .pss-hm-sys__entry,
.pss-hm-sys__map.is-live .pss-hm-sys__list li::after {
	animation: pss-in-rise 0.4s ease-out backwards;
	animation-delay: calc(0.32s + var(--d) * 0.32s + var(--i, 0) * 0.06s);
}

/* Why Work With Us: a numbered list beside a dial (D-024) */
.pss-hm-why {
	position: relative;
	isolation: isolate;
	padding-block: clamp(2.25rem, 4.5vw, 3.75rem);
	background: var(--pss-color-tint);
	border-block-end: 1px solid var(--pss-color-line);
}

.pss-hm-why::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(31, 54, 92, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(31, 54, 92, 0.05) 1px, transparent 1px);
	background-size: 32px 32px;
	-webkit-mask-image: linear-gradient(90deg, transparent 25%, #000 75%);
	mask-image: linear-gradient(90deg, transparent 25%, #000 75%);
}

[dir="rtl"] .pss-hm-why::before {
	-webkit-mask-image: linear-gradient(270deg, transparent 25%, #000 75%);
	mask-image: linear-gradient(270deg, transparent 25%, #000 75%);
}

.pss-hm-why__grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	grid-template-areas:
		"head dial"
		"body dial";
	gap: 0 clamp(2rem, 6vw, 6rem);
	align-items: center;
}

.pss-hm-why__head {
	grid-area: head;
	align-self: end;
}

.pss-hm-why__head .pss-cx-title {
	margin-block-end: 0;
}

.pss-hm-why__head .pss-cx-lead {
	margin-block: 1rem 0;
}

.pss-hm-why__body {
	grid-area: body;
	align-self: start;
}

#page .pss-hm-why__list {
	margin: 2rem 0 0;
	padding: 0;
	list-style: none;
	border-block-start: 1px solid rgba(31, 54, 92, 0.14);
}

#page .pss-hm-why__item {
	position: relative;
	margin: 0;
	list-style: none;
	border-block-end: 1px solid rgba(31, 54, 92, 0.14);
}

.pss-hm-why__item::before {
	content: "";
	position: absolute;
	inset-block: -1px;
	inset-inline-start: 0;
	width: 3px;
	background: var(--pss-color-red);
	transform: scaleY(0);
	transition: transform 0.3s ease;
}

.pss-hm-why__item.is-active::before {
	transform: scaleY(1);
}

#page .pss-hm-why__toggle {
	display: flex;
	align-items: baseline;
	gap: 1rem;
	width: 100%;
	min-height: 0;
	margin: 0;
	padding: 1rem 0 !important;
	padding-inline-start: 1.1rem !important;
	color: var(--pss-color-navy);
	background: none !important;
	border: 0 !important;
	border-radius: 0;
	box-shadow: none !important;
	font-family: var(--pss-font-family);
	text-align: start;
	cursor: pointer;
}

#page .pss-hm-why__toggle:focus-visible {
	outline: 2px solid var(--pss-color-red);
	outline-offset: -2px;
}

.pss-hm-why__num {
	flex: none;
	min-width: 1.75rem;
	color: var(--pss-color-red);
	font-size: 0.85rem;
	font-weight: 800;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.06em;
}

.pss-hm-why__name {
	font-size: 1.08rem;
	font-weight: 800;
	line-height: 1.35;
	transition: color 0.2s ease;
}

.pss-hm-why__toggle:hover .pss-hm-why__name {
	color: var(--pss-color-red);
}

.pss-hm-why__desc p {
	margin: 0;
	padding-block-end: 1.1rem;
	padding-inline-start: calc(1.1rem + 1.75rem + 1rem);
	color: var(--pss-color-muted);
	font-size: 0.95rem;
	line-height: 1.6;
}

/* With the script, only the active reason stays open */
.pss-hm-why.is-ready .pss-hm-why__desc {
	display: grid;
	grid-template-rows: 0fr;
	transition: grid-template-rows 0.35s ease;
}

.pss-hm-why.is-ready .pss-hm-why__desc > div {
	min-height: 0;
	overflow: hidden;
}

.pss-hm-why.is-ready .is-active .pss-hm-why__desc {
	grid-template-rows: 1fr;
}

.pss-hm-why .dt-btn {
	margin-block-start: 2rem;
}

/* The dial: a slow tick ring, a track, and a red arc up to the active reason */
.pss-hm-why__dial {
	grid-area: dial;
	position: relative;
	width: min(100%, 30rem);
	aspect-ratio: 1;
	justify-self: center;
}

.pss-hm-why__rings {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	overflow: visible;
}

.pss-hm-why__ticks {
	fill: none;
	stroke: rgba(31, 54, 92, 0.32);
	stroke-width: 10;
	stroke-dasharray: 0.5 2.5;
	transform-box: fill-box;
	transform-origin: center;
	animation: pss-hm-why-spin 90s linear infinite;
}

@keyframes pss-hm-why-spin {
	to {
		transform: rotate(360deg);
	}
}

.pss-hm-why__track,
.pss-hm-why__arc {
	fill: none;
}

.pss-hm-why__track {
	stroke: rgba(31, 54, 92, 0.18);
	stroke-width: 2;
	stroke-dasharray: 100;
}

.pss-hm-why__arc {
	stroke: var(--pss-color-red);
	stroke-width: 3;
	stroke-linecap: round;
	transition: stroke-dasharray 0.6s ease;
}

#page .pss-hm-why__node {
	position: absolute;
	top: var(--y);
	left: var(--x);
	display: grid;
	place-items: center;
	width: 3.5rem;
	height: 3.5rem;
	min-height: 0;
	margin: -1.75rem 0 0 -1.75rem;
	padding: 0 !important;
	color: #fff;
	background: var(--pss-color-navy) !important;
	border: 2px solid var(--pss-color-red) !important;
	border-radius: 50%;
	box-shadow: 0 0 0 6px rgba(221, 51, 51, 0.1) !important;
	cursor: pointer;
	transition: transform 0.25s ease, background-color 0.25s ease, box-shadow 0.25s ease;
}

.pss-hm-why__node svg {
	width: 1.45rem;
	height: 1.45rem;
}

#page .pss-hm-why__node.is-active {
	background: var(--pss-color-red) !important;
	box-shadow: 0 0 0 8px rgba(221, 51, 51, 0.16) !important;
	transform: scale(1.08);
}

#page .pss-hm-why__node:hover {
	transform: scale(1.14);
}

.pss-hm-why__center {
	position: absolute;
	inset: 23%;
	display: grid;
	place-content: center;
	gap: 0.45rem;
	padding: 1.25rem;
	text-align: center;
	background: #fff;
	border: 1px solid var(--pss-color-line);
	border-radius: 50%;
	box-shadow: 0 18px 40px rgba(13, 28, 48, 0.08);
}

.pss-hm-why__center-num {
	justify-self: center;
	padding: 0.2rem 0.65rem;
	color: var(--pss-color-red);
	background: var(--pss-color-red-wash);
	border-radius: 999px;
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.08em;
}

#page .pss-hm-why__center-title {
	margin: 0;
	color: var(--pss-color-navy);
	font-size: 1.2rem;
	font-weight: 800;
	line-height: 1.25;
}

#page .pss-hm-why__center-text {
	margin: 0;
	color: var(--pss-color-muted);
	font-size: 0.86rem;
	line-height: 1.5;
}

.pss-hm-why__center.is-swap > * {
	animation: pss-in-rise 0.35s ease-out backwards;
}

.pss-hm-why__center.is-swap > :nth-child(2) { animation-delay: 0.04s; }
.pss-hm-why__center.is-swap > :nth-child(3) { animation-delay: 0.08s; }

/* Entrance: the text rises, the reasons follow; the ring draws, then the nodes pop in turn */
.pss-hm-why__head.is-armed:not(.is-live) > *,
.pss-hm-why__body.is-armed:not(.is-live) .pss-hm-why__item,
.pss-hm-why__body.is-armed:not(.is-live) .dt-btn,
.pss-hm-why__dial.is-armed:not(.is-live) .pss-hm-why__node,
.pss-hm-why__dial.is-armed:not(.is-live) .pss-hm-why__center,
.pss-hm-why__dial.is-armed:not(.is-live) .pss-hm-why__ticks-in {
	opacity: 0;
}

.pss-hm-why__dial.is-armed:not(.is-live) .pss-hm-why__track {
	stroke-dashoffset: 100;
}

.pss-hm-why__head.is-live > *,
.pss-hm-why__body.is-live .dt-btn {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-hm-why__head.is-live > :nth-child(2) { animation-delay: 0.08s; }
.pss-hm-why__head.is-live > :nth-child(3) { animation-delay: 0.16s; }
.pss-hm-why__body.is-live .dt-btn { animation-delay: 0.6s; }

.pss-hm-why__body.is-live .pss-hm-why__item {
	animation: pss-in-rise 0.4s ease-out backwards;
	animation-delay: calc(0.1s + var(--i) * 0.08s);
}

.pss-hm-why__dial.is-live .pss-hm-why__track {
	animation: pss-hm-why-draw 0.9s ease-in-out backwards;
}

@keyframes pss-hm-why-draw {
	from {
		stroke-dashoffset: 100;
	}
}

.pss-hm-why__dial.is-live .pss-hm-why__ticks-in {
	animation: pss-in-rise 0.6s ease-out 0.2s backwards;
}

.pss-hm-why__dial.is-live .pss-hm-why__node {
	animation: pss-in-pop 0.45s cubic-bezier(0.3, 1.4, 0.5, 1) backwards;
	animation-delay: calc(0.3s + var(--i) * 0.12s);
}

.pss-hm-why__dial.is-live .pss-hm-why__center {
	animation: pss-in-rise 0.5s ease-out 0.9s backwards;
}

/* Clients: one slow rail; still on hover, wrapped for reduced motion */
.pss-hm-clients {
	overflow: hidden;
	padding-block: clamp(2.25rem, 4vw, 3.25rem);
}

.pss-hm-clients__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 1rem 4rem;
	align-items: end;
	margin-block-end: 2.5rem;
}

.pss-hm-clients__head .pss-cx-title {
	margin: 0;
}

.pss-hm-clients__head .pss-cx-lead {
	justify-self: end;
}

.pss-hm-clients__rail {
	display: flex;
	overflow: hidden;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
	mask-image: linear-gradient(90deg, transparent, #000 7%, #000 93%, transparent);
}

#page .pss-hm-clients__track {
	display: flex;
	flex: none;
	gap: 1rem;
	margin: 0;
	padding: 0.5rem 0;
	padding-inline-end: 1rem;
	list-style: none;
	animation: pss-hm-rail 70s linear infinite;
}

.pss-hm-clients__rail:hover .pss-hm-clients__track,
.pss-hm-clients__rail:focus-within .pss-hm-clients__track {
	animation-play-state: paused;
}

@keyframes pss-hm-rail {
	to {
		transform: translateX(calc(var(--pss-in-dir) * -100%));
	}
}

#page .pss-hm-clients__logo {
	display: grid;
	flex: none;
	place-items: center;
	width: 11rem;
	height: 6.25rem;
	margin: 0;
	padding: 0.9rem 1.2rem;
	box-sizing: border-box;
	list-style: none;
	border: 1px solid var(--pss-color-line);
	border-radius: 0.9rem;
	background: #fff;
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.pss-hm-clients__logo img {
	display: block;
	width: auto;
	max-width: 100%;
	height: auto;
	max-height: 3.9rem;
	object-fit: contain;
	filter: grayscale(1);
	opacity: 0.72;
	transition: filter 0.25s ease, opacity 0.25s ease;
}

#page .pss-hm-clients__logo:hover {
	border-color: rgba(221, 51, 51, 0.35);
	box-shadow: 0 10px 24px rgba(13, 28, 48, 0.08);
}

.pss-hm-clients__logo:hover img {
	filter: none;
	opacity: 1;
}

.pss-hm-clients.is-armed:not(.is-live) .pss-hm-clients__head > div > *,
.pss-hm-clients.is-armed:not(.is-live) .pss-hm-clients__head > .pss-cx-lead,
.pss-hm-clients.is-armed:not(.is-live) .pss-hm-clients__rail {
	opacity: 0;
}

.pss-hm-clients.is-live .pss-hm-clients__head > div > *,
.pss-hm-clients.is-live .pss-hm-clients__head > .pss-cx-lead,
.pss-hm-clients.is-live .pss-hm-clients__rail {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-hm-clients.is-live .pss-cx-title { animation-delay: 0.08s; }
.pss-hm-clients.is-live .pss-hm-clients__head > .pss-cx-lead { animation-delay: 0.16s; }
.pss-hm-clients.is-live .pss-hm-clients__rail { animation-delay: 0.26s; }

/* Certifications on Home: the shared seals beside a short statement */
.pss-hm-iso {
	position: relative;
	isolation: isolate;
	padding-block: clamp(2.25rem, 4vw, 3.25rem);
	background: var(--pss-color-tint);
	border-block: 1px solid var(--pss-color-line);
}

.pss-hm-iso::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(31, 54, 92, 0.05) 1px, transparent 1px),
		linear-gradient(90deg, rgba(31, 54, 92, 0.05) 1px, transparent 1px);
	background-size: 32px 32px;
	-webkit-mask-image: linear-gradient(90deg, transparent, #000 40%);
	mask-image: linear-gradient(90deg, transparent, #000 40%);
}

.pss-hm-iso__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.7fr);
	gap: clamp(2rem, 5vw, 5rem);
	align-items: center;
}

.pss-hm-iso__copy .pss-hm-link {
	margin-block-start: 1.25rem;
}

#page .pss-hm-iso .pss-iso {
	margin: 0;
}

.pss-hm-iso.is-armed:not(.is-live) .pss-hm-iso__copy > * {
	opacity: 0;
}

.pss-hm-iso.is-live .pss-hm-iso__copy > * {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-hm-iso.is-live .pss-hm-iso__copy > :nth-child(2) { animation-delay: 0.08s; }
.pss-hm-iso.is-live .pss-hm-iso__copy > :nth-child(3) { animation-delay: 0.16s; }
.pss-hm-iso.is-live .pss-hm-iso__copy > :nth-child(4) { animation-delay: 0.24s; }

/* Closing band: the free site survey and the four project steps */
.pss-hm-cta {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(2.25rem, 4.5vw, 3.75rem);
	color: #fff;
	background:
		radial-gradient(55% 60% at 85% 100%, rgba(221, 51, 51, 0.16), transparent 70%),
		linear-gradient(165deg, var(--pss-color-navy) 0%, #142844 45%, #0d1c30 100%);
}

.pss-hm-cta::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: radial-gradient(80% 90% at 20% 40%, #000, transparent);
	mask-image: radial-gradient(80% 90% at 20% 40%, #000, transparent);
}

.pss-hm-cta__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: clamp(2.5rem, 6vw, 6rem);
	align-items: center;
}

.pss-hm-cta__title {
	margin: 0 0 1rem;
	color: #fff;
	font-size: clamp(2rem, 3.6vw, 3.05rem);
	font-weight: 800;
	line-height: 1.1;
}

.pss-hm-cta__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.75rem;
	margin-block-start: 2rem;
}

#page .pss-hm-cta__call {
	display: inline-flex;
	align-items: center;
	gap: 0.6rem;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 700;
	text-decoration: none;
}

.pss-hm-cta__call svg {
	width: 1.25rem;
	height: 1.25rem;
	color: var(--pss-color-red);
}

#page .pss-hm-cta__call:hover span,
#page .pss-hm-cta__call:focus-visible span {
	text-decoration: underline;
	text-underline-offset: 0.25em;
}

#page .pss-hm-cta__steps {
	display: grid;
	gap: 1.35rem;
	margin: 0;
	padding: clamp(1.4rem, 2.4vw, 2rem);
	list-style: none;
	border: 1px solid rgba(255, 255, 255, 0.12);
	border-radius: 1.1rem;
	background: rgba(255, 255, 255, 0.04);
	box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.06);
}

#page .pss-hm-cta__steps li {
	position: relative;
	display: grid;
	grid-template-columns: 2.5rem minmax(0, 1fr);
	column-gap: 1rem;
	margin: 0;
	list-style: none;
}

.pss-hm-cta__steps li::after {
	content: "";
	position: absolute;
	top: 2.5rem;
	bottom: -1.35rem;
	inset-inline-start: calc(1.25rem - 1px);
	width: 2px;
	background: rgba(255, 255, 255, 0.22);
	transform-origin: top;
}

.pss-hm-cta__steps li:last-child::after {
	content: none;
}

.pss-hm-cta__node {
	grid-row: span 2;
	display: grid;
	place-items: center;
	width: 2.5rem;
	height: 2.5rem;
	box-sizing: border-box;
	color: #fff;
	font-weight: 800;
	border: 2px solid rgba(255, 255, 255, 0.55);
	border-radius: 50%;
	background: #0d1c30;
}

.pss-hm-cta__steps li:last-child .pss-hm-cta__node {
	border-color: var(--pss-color-red);
	background: var(--pss-color-red);
}

.pss-hm-cta__steps strong {
	align-self: end;
	color: #fff;
	font-size: 1.05rem;
	font-weight: 800;
	line-height: 1.3;
}

.pss-hm-cta__steps li > span:last-child {
	color: rgba(255, 255, 255, 0.66);
	font-size: 0.9rem;
	line-height: 1.5;
}

.pss-hm-cta.is-armed:not(.is-live) .pss-hm-cta__copy > *,
.pss-hm-cta.is-armed:not(.is-live) .pss-hm-cta__node,
.pss-hm-cta.is-armed:not(.is-live) .pss-hm-cta__steps strong,
.pss-hm-cta.is-armed:not(.is-live) .pss-hm-cta__steps li > span:last-child {
	opacity: 0;
}

.pss-hm-cta.is-armed:not(.is-live) .pss-hm-cta__steps li::after {
	transform: scaleY(0);
}

.pss-hm-cta.is-live .pss-hm-cta__copy > * {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-hm-cta.is-live .pss-hm-cta__copy > :nth-child(2) { animation-delay: 0.08s; }
.pss-hm-cta.is-live .pss-hm-cta__copy > :nth-child(3) { animation-delay: 0.16s; }
.pss-hm-cta.is-live .pss-hm-cta__copy > :nth-child(4) { animation-delay: 0.24s; }

.pss-hm-cta.is-live .pss-hm-cta__node {
	animation: pss-in-pop 0.4s cubic-bezier(0.3, 1.4, 0.5, 1) backwards;
	animation-delay: calc(0.2s + var(--i, 0) * 0.16s);
}

.pss-hm-cta.is-live .pss-hm-cta__steps strong,
.pss-hm-cta.is-live .pss-hm-cta__steps li > span:last-child {
	animation: pss-in-slide 0.4s ease-out backwards;
	animation-delay: calc(0.28s + var(--i, 0) * 0.16s);
}

.pss-hm-cta.is-live .pss-hm-cta__steps li::after {
	animation: pss-in-draw-y 0.25s ease-out backwards;
	animation-delay: calc(0.36s + var(--i, 0) * 0.16s);
}

@media (max-width: 1100px) {
	.pss-hm-iso__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.pss-hm-iso__copy {
		max-width: 40rem;
	}
}

@media (max-width: 960px) {
	.pss-hm-intro__grid,
	.pss-hm-sys__head,
	.pss-hm-clients__head,
	.pss-hm-cta__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.pss-hm-sys__head .pss-cx-lead,
	.pss-hm-clients__head .pss-cx-lead {
		justify-self: start;
	}

	.pss-hm-sys__map {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.25rem;
	}

	.pss-hm-sys__bus {
		display: none;
	}

	.pss-hm-plate {
		max-width: 34rem;
	}

	.pss-hm-why__grid {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"head"
			"dial"
			"body";
	}

	.pss-hm-why__dial {
		width: min(100%, 24rem);
		margin-block-start: 2.5rem;
	}
}

@media (max-width: 640px) {
	.pss-hm-sys__map {
		--disc: 3.25rem;
	}

	.pss-hm-sys__icon svg {
		width: 1.35rem;
		height: 1.35rem;
	}

	#page .pss-hm-clients__logo {
		width: 9rem;
		height: 5.25rem;
	}

	.pss-hm-plate__cell {
		padding-inline: 0.75rem;
	}

	.pss-hm-plate__cell:nth-child(even) {
		padding-inline-start: 1rem;
	}

	.pss-hm-why__dial {
		width: min(100%, 19rem);
	}

	#page .pss-hm-why__node {
		width: 2.75rem;
		height: 2.75rem;
		margin: -1.375rem 0 0 -1.375rem;
	}

	.pss-hm-why__node svg {
		width: 1.15rem;
		height: 1.15rem;
	}

	.pss-hm-why__center {
		inset: 21%;
		padding: 0.75rem;
	}

	#page .pss-hm-why__center-title {
		font-size: 1rem;
	}

	/* The open reason in the list already shows this text */
	#page .pss-hm-why__center-text {
		display: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-hm-why__ticks,
	.pss-hm-why__center.is-swap > * {
		animation: none;
	}

	.pss-hm-why__item::before,
	.pss-hm-why.is-ready .pss-hm-why__desc,
	.pss-hm-why__arc,
	#page .pss-hm-why__node {
		transition: none;
	}

	#page .pss-hm-clients__track {
		flex-wrap: wrap;
		justify-content: center;
		flex: 1 1 100%;
		padding-inline-end: 0;
		animation: none;
	}

	#page .pss-hm-clients__track[aria-hidden="true"] {
		display: none;
	}

	.pss-hm-clients__rail {
		width: min(84rem, calc(100% - 2 * clamp(1.1rem, 3vw, 1.5rem)));
		margin-inline: auto;
		-webkit-mask-image: none;
		mask-image: none;
	}
}

/* =========================================================
   SERVICES PAGE (D-025) — page-services.php
   The catalogue in three chapters: a sticky discipline nav,
   a navy band per discipline, then one spec sheet per
   service. js/pss-services.js sets --pss-svc-top to the
   height of the fixed site header and marks the active tab.
   ========================================================= */

.pss-svc {
	--pss-svc-top: 0px;
	--pss-svc-nav-h: 4.75rem;
}

/* The7 sets overflow: hidden on #page, which stops position: sticky. */
body.page-id-7 #page {
	overflow: clip;
}

.pss-svc :is(.pss-svc-chapter, .pss-svc-sheet) {
	scroll-margin-top: calc(var(--pss-svc-top) + var(--pss-svc-nav-h) - 1px);
}

/* Discipline nav */
.pss-svc-nav {
	position: sticky;
	z-index: 30;
	top: var(--pss-svc-top);
	border-block-end: 1px solid var(--pss-color-line);
	background: rgba(255, 255, 255, 0.96);
	box-shadow: 0 8px 24px rgba(31, 54, 92, 0.06);
	-webkit-backdrop-filter: blur(10px);
	backdrop-filter: blur(10px);
}

.pss-svc-nav__inner {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

#page .pss-svc-nav__tab {
	position: relative;
	display: grid;
	grid-template-columns: 2.6rem minmax(0, 1fr);
	grid-template-areas:
		"icon name"
		"icon count";
	align-items: center;
	column-gap: 0.85rem;
	padding: 0.85rem clamp(0.75rem, 1.6vw, 1.4rem);
	color: var(--pss-color-navy);
	text-decoration: none;
	border-inline-start: 1px solid var(--pss-color-line);
	transition: background-color 0.2s ease;
}

#page .pss-svc-nav__tab:last-child {
	border-inline-end: 1px solid var(--pss-color-line);
}

.pss-svc-nav__tab::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	bottom: -1px;
	height: 3px;
	background: var(--pss-color-red);
	transform: scaleX(0);
	transition: transform 0.3s ease;
}

.pss-svc-nav__icon {
	grid-area: icon;
	display: grid;
	place-items: center;
	width: 2.6rem;
	height: 2.6rem;
	color: var(--pss-color-red);
	border-radius: 0.6rem;
	background: var(--pss-color-red-wash);
	transition: color 0.2s ease, background-color 0.2s ease;
}

.pss-svc-nav__icon svg {
	width: 1.3rem;
	height: 1.3rem;
}

.pss-svc-nav__num {
	display: none;
}

.pss-svc-nav__name {
	grid-area: name;
	align-self: end;
	font-size: 0.98rem;
	font-weight: 800;
	line-height: 1.2;
}

.pss-svc-nav__count {
	grid-area: count;
	align-self: start;
	color: var(--pss-color-muted);
	font-size: 0.8rem;
	line-height: 1.4;
}

#page .pss-svc-nav__tab:hover {
	background: var(--pss-color-tint);
}

#page .pss-svc-nav__tab:focus-visible {
	outline: 2px solid var(--pss-color-red);
	outline-offset: -2px;
}

.pss-svc-nav__tab.is-active::after {
	transform: scaleX(1);
}

.pss-svc-nav__tab.is-active .pss-svc-nav__icon {
	color: #fff;
	background: var(--pss-color-red);
}

/* Chapter band */
.pss-svc-band {
	position: relative;
	isolation: isolate;
	overflow: hidden;
	padding-block: clamp(2.25rem, 4.5vw, 3.5rem);
	color: #fff;
	background:
		radial-gradient(50% 80% at 90% 0%, rgba(221, 51, 51, 0.16), transparent 70%),
		linear-gradient(165deg, var(--pss-color-navy) 0%, #142844 50%, #0d1c30 100%);
}

.pss-svc-band::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: radial-gradient(70% 90% at 15% 30%, #000, transparent);
	mask-image: radial-gradient(70% 90% at 15% 30%, #000, transparent);
}

[dir="rtl"] .pss-svc-band::before {
	-webkit-mask-image: radial-gradient(70% 90% at 85% 30%, #000, transparent);
	mask-image: radial-gradient(70% 90% at 85% 30%, #000, transparent);
}

.pss-svc-band__grid {
	display: grid;
	grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
	gap: clamp(2rem, 6vw, 6rem);
	align-items: end;
}

.pss-svc-band__num {
	display: block;
	margin-block-end: 1.25rem;
	color: transparent;
	font-size: clamp(4.5rem, 9vw, 7.5rem);
	font-weight: 800;
	line-height: 0.8;
	letter-spacing: -0.02em;
	-webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.32);
}

.pss-svc-band .pss-cx-title {
	font-size: clamp(2rem, 3.6vw, 3rem);
	line-height: 1.1;
}

#page .pss-svc-band__index {
	margin: 0;
	padding: 0;
	list-style: none;
	border-block-start: 1px solid rgba(255, 255, 255, 0.16);
}

#page .pss-svc-band__index li {
	margin: 0;
	list-style: none;
}

#page .pss-svc-band__index a {
	display: grid;
	grid-template-columns: 3.25rem minmax(0, 1fr) auto;
	align-items: center;
	padding-block: 0.9rem;
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	text-decoration: none;
	border-block-end: 1px solid rgba(255, 255, 255, 0.16);
}

#page .pss-svc-band__index a::after {
	content: "";
	width: 0.5rem;
	height: 0.5rem;
	border-block-end: 2px solid currentColor;
	border-inline-end: 2px solid currentColor;
	opacity: 0.45;
	transform: rotate(45deg) translate(-20%, -20%);
	transition: opacity 0.2s ease, transform 0.2s ease;
}

.pss-svc-band__ref {
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.82rem;
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.04em;
	transition: color 0.2s ease;
}

#page .pss-svc-band__index a:hover .pss-svc-band__ref,
#page .pss-svc-band__index a:focus-visible .pss-svc-band__ref {
	color: var(--pss-color-red);
}

#page .pss-svc-band__index a:hover::after,
#page .pss-svc-band__index a:focus-visible::after {
	opacity: 1;
	transform: rotate(45deg) translate(10%, 10%);
}

/* Spec sheet */
.pss-svc-sheet {
	padding-block: clamp(2.25rem, 4.5vw, 3.75rem);
	background: #fff;
}

.pss-svc-sheet--alt {
	background: var(--pss-color-tint);
}

.pss-svc-sheet__grid {
	display: grid;
	grid-template-columns: minmax(0, 0.95fr) minmax(0, 1.05fr);
	gap: clamp(2.5rem, 6vw, 6rem);
	align-items: center;
}

.pss-svc-sheet__visual {
	min-width: 0;
}

.pss-svc-sheet--alt .pss-svc-sheet__visual {
	order: 2;
}

.pss-svc-sheet__media {
	position: relative;
	aspect-ratio: 4 / 3;
	margin: 0.75rem;
}

.pss-svc-sheet__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 0.75rem;
}

.pss-svc-sheet__media::after {
	content: "";
	position: absolute;
	inset: 0;
	border-radius: 0.75rem;
	background: linear-gradient(to top, rgba(13, 28, 48, 0.38), transparent 45%);
	box-shadow: inset 0 0 0 1px rgba(31, 54, 92, 0.08);
	pointer-events: none;
}

/* Drawing corner marks around the photo; registered so the marks can grow smoothly. */
@property --pss-corner {
	syntax: "<length>";
	inherits: false;
	initial-value: 1.6rem;
}

.pss-svc-sheet__frame {
	--c: var(--pss-color-red);
	--pss-corner: 1.6rem;
	position: absolute;
	inset: -0.75rem;
	pointer-events: none;
	background:
		linear-gradient(var(--c), var(--c)) top left / var(--pss-corner) 2px,
		linear-gradient(var(--c), var(--c)) top left / 2px var(--pss-corner),
		linear-gradient(var(--c), var(--c)) top right / var(--pss-corner) 2px,
		linear-gradient(var(--c), var(--c)) top right / 2px var(--pss-corner),
		linear-gradient(var(--c), var(--c)) bottom left / var(--pss-corner) 2px,
		linear-gradient(var(--c), var(--c)) bottom left / 2px var(--pss-corner),
		linear-gradient(var(--c), var(--c)) bottom right / var(--pss-corner) 2px,
		linear-gradient(var(--c), var(--c)) bottom right / 2px var(--pss-corner);
	background-repeat: no-repeat;
}

.pss-svc-sheet__ref {
	display: inline-flex;
	align-items: center;
	gap: 0.65rem;
	margin: 0 0 1rem;
	color: var(--pss-color-muted);
	font-size: 0.78rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.pss-svc-sheet__ref span {
	padding: 0.2rem 0.5rem;
	color: var(--pss-color-red-deep);
	font-variant-numeric: tabular-nums;
	letter-spacing: 0.04em;
	border-radius: 0.3rem;
	background: var(--pss-color-red-wash);
}

.pss-svc-sheet__title {
	margin: 0 0 0.5rem;
	color: var(--pss-color-navy);
	font-size: clamp(1.75rem, 3vw, 2.5rem);
	font-weight: 800;
	line-height: 1.12;
}

.pss-svc-sheet__tagline {
	margin: 0 0 1.1rem;
	color: var(--pss-color-red-deep);
	font-size: 1.1rem;
	font-weight: 700;
	line-height: 1.45;
}

.pss-svc-sheet__desc {
	max-width: 38rem;
	margin: 0 0 2rem;
	color: var(--pss-color-muted);
	font-size: 1rem;
	line-height: 1.75;
}

.pss-svc-sheet__label {
	display: flex;
	align-items: center;
	gap: 0.85rem;
	margin: 0 0 0.9rem;
	color: var(--pss-color-navy);
	font-size: 0.75rem;
	font-weight: 800;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pss-svc-sheet__label::after {
	content: "";
	flex: 1;
	height: 1px;
	background: var(--pss-color-line);
}

#page .pss-svc-sheet__features {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 0.7rem 1.75rem;
	margin: 0 0 2rem;
	padding: 0;
	list-style: none;
}

#page .pss-svc-sheet__features li {
	position: relative;
	margin: 0;
	padding-inline-start: 1.3rem;
	color: var(--pss-color-ink);
	font-size: 0.95rem;
	line-height: 1.5;
	list-style: none;
}

#page .pss-svc-sheet__features li::marker {
	content: none;
}

#page .pss-svc-sheet__features li::before {
	content: "";
	position: absolute;
	top: 0.5em;
	inset-inline-start: 0;
	width: 0.5rem;
	height: 0.5rem;
	border-radius: 2px;
	background: var(--pss-color-red);
}

.pss-svc-sheet__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 1.25rem 2rem;
	padding-block-start: 1.5rem;
	border-block-start: 1px solid var(--pss-color-line);
}

.pss-svc-sheet__works {
	flex: 1 1 18rem;
}

.pss-svc-sheet__works .pss-svc-sheet__label::after {
	content: none;
}

#page .pss-svc-sheet__works ul {
	display: flex;
	flex-wrap: wrap;
	gap: 0.5rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

#page .pss-svc-sheet__works li {
	margin: 0;
	list-style: none;
}

#page .pss-svc-sheet__works a {
	display: inline-flex;
	align-items: center;
	min-height: 2.25rem;
	padding: 0.35rem 0.85rem;
	box-sizing: border-box;
	color: var(--pss-color-navy);
	font-size: 0.85rem;
	font-weight: 700;
	text-decoration: none;
	border: 1px solid rgba(31, 54, 92, 0.18);
	border-radius: 999px;
	background: #fff;
	transition: color 0.2s ease, border-color 0.2s ease;
}

#page .pss-svc-sheet__works a:hover,
#page .pss-svc-sheet__works a:focus-visible {
	color: var(--pss-color-red-deep);
	border-color: var(--pss-color-red);
}

#page .pss-svc-sheet__ask {
	margin-block-start: 0;
	white-space: nowrap;
}

/* Entrances (D-021) */
.pss-svc-band.is-armed:not(.is-live) .pss-svc-band__copy > *,
.pss-svc-band.is-armed:not(.is-live) .pss-svc-band__index li,
.pss-svc-sheet__body.is-armed:not(.is-live) > *,
.pss-svc-sheet__body.is-armed:not(.is-live) .pss-svc-sheet__features li {
	opacity: 0;
}

.pss-svc-sheet__media.is-armed:not(.is-live) img,
.pss-svc-sheet__media.is-armed:not(.is-live)::after {
	clip-path: polygon(0 0, 0 0, 0 0);
}

.pss-svc-sheet__media.is-armed:not(.is-live) .pss-svc-sheet__frame,
.pss-svc-sheet__media.is-loading .pss-svc-sheet__frame {
	opacity: 0;
	transform: scale(1.04);
}

.pss-svc-band.is-live .pss-svc-band__copy > * {
	animation: pss-in-rise 0.55s ease-out backwards;
}

.pss-svc-band.is-live .pss-svc-band__copy > :nth-child(2) { animation-delay: 0.08s; }
.pss-svc-band.is-live .pss-svc-band__copy > :nth-child(3) { animation-delay: 0.16s; }
.pss-svc-band.is-live .pss-svc-band__copy > :nth-child(4) { animation-delay: 0.24s; }

.pss-svc-band.is-live .pss-svc-band__index li {
	animation: pss-in-slide 0.45s ease-out backwards;
	animation-delay: calc(0.25s + var(--i, 0) * 0.07s);
}

/* Every photo opens the same way: a 45° reveal from the top-left corner while
   it settles from a slight zoom and its colour comes up; the corner marks follow. */
.pss-svc-sheet__media.is-live img {
	animation: pss-svc-photo-in 0.85s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

.pss-svc-sheet__media.is-live::after {
	animation: pss-svc-photo-wipe 0.85s cubic-bezier(0.22, 1, 0.36, 1) backwards;
}

.pss-svc-sheet__media.is-loading img,
.pss-svc-sheet__media.is-loading::after {
	animation-play-state: paused;
}

@keyframes pss-svc-photo-in {
	from {
		clip-path: polygon(0 0, 0 0, 0 0);
		transform: scale(1.12);
		filter: saturate(0.4) brightness(0.75);
	}

	to {
		clip-path: polygon(0 0, 200% 0, 0 200%);
		transform: none;
		filter: none;
	}
}

@keyframes pss-svc-photo-wipe {
	from {
		clip-path: polygon(0 0, 0 0, 0 0);
	}

	to {
		clip-path: polygon(0 0, 200% 0, 0 200%);
	}
}

.pss-svc-sheet__frame {
	transition: opacity 0.45s ease 0.4s, transform 0.45s ease 0.4s, --pss-corner 0.35s ease, filter 0.35s ease;
}

/* Hover: a glass gleam crosses the photo at 45°, top left to bottom right. */
.pss-svc-sheet__media::before {
	content: "";
	position: absolute;
	z-index: 1;
	inset: 0;
	border-radius: 0.75rem;
	background: linear-gradient(135deg, transparent 36%, rgba(255, 255, 255, 0.14) 43%, rgba(255, 255, 255, 0.7) 49.5%, rgba(255, 255, 255, 0.7) 50.5%, rgba(255, 255, 255, 0.14) 57%, transparent 64%) 100% 100% / 250% 250% no-repeat;
	opacity: 0;
	pointer-events: none;
}

.pss-svc-sheet__media img {
	transition: filter 0.4s ease;
}

@keyframes pss-svc-gleam {
	from {
		background-position: 100% 100%;
		opacity: 1;
	}

	to {
		background-position: 0% 0%;
		opacity: 1;
	}
}

@media (hover: hover) and (pointer: fine) {
	.pss-svc-sheet__media:hover::before {
		animation: pss-svc-gleam 0.9s cubic-bezier(0.4, 0, 0.2, 1);
	}

	.pss-svc-sheet__media:hover img {
		filter: brightness(1.06) saturate(1.08);
	}

	.pss-svc-sheet__media:hover .pss-svc-sheet__frame {
		--pss-corner: 2.4rem;
		filter: drop-shadow(0 0 4px rgba(221, 51, 51, 0.6));
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-svc-sheet__media:hover::before {
		animation: none;
	}
}

/* Brand rail under a service photo (D-030): logo plates glide left to right
   along a red hairline and fade out at the photo's edges. A still two-column
   grid until pss-services.js adds .is-moving. */
.pss-svc-brands {
	position: relative;
	margin: 1.75rem 0.75rem 0;
	transition: opacity 0.5s ease 0.55s, transform 0.5s ease 0.55s;
}

.pss-svc-sheet__media.is-armed:not(.is-live) + .pss-svc-brands {
	opacity: 0;
	transform: translateY(0.75rem);
}

.pss-svc-brands__viewport {
	position: relative;
}

.pss-svc-brands.is-moving .pss-svc-brands__viewport::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-start: 50%;
	block-size: 1px;
	background: rgba(221, 51, 51, 0.35);
}

.pss-svc-brands__track {
	position: relative;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(8rem, 1fr));
	gap: 0.75rem;
	margin: 0;
	padding: 0.6rem 0;
	list-style: none;
}

.pss-svc-brands.is-moving .pss-svc-brands__viewport {
	overflow: hidden;
	direction: ltr;
	-webkit-mask-image: linear-gradient(90deg, transparent, black 3.5rem, black calc(100% - 3.5rem), transparent);
	mask-image: linear-gradient(90deg, transparent, black 3.5rem, black calc(100% - 3.5rem), transparent);
}

.pss-svc-brands.is-moving .pss-svc-brands__track {
	display: flex;
	inline-size: max-content;
	animation: pss-brands-run var(--pss-brand-time, 30s) linear infinite;
}

.pss-svc-brands.is-moving:hover .pss-svc-brands__track {
	animation-play-state: paused;
}

#page .pss-svc-brands__item {
	position: relative;
	display: flex;
	flex: none;
	align-items: center;
	justify-content: center;
	block-size: 3.375rem;
	margin: 0;
	padding-inline: 1.1rem;
	box-sizing: border-box;
	list-style: none;
	border: 1px solid rgba(221, 51, 51, 0.5);
	border-radius: 999px;
	background: #fff;
	box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 4px rgba(221, 51, 51, 0.12), 0 8px 18px -12px rgba(185, 28, 28, 0.55);
	transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

.pss-svc-brands.is-moving .pss-svc-brands__item {
	inline-size: 10.5rem;
}

#page .pss-svc-brands__item img {
	display: block;
	inline-size: auto;
	block-size: auto;
	max-inline-size: 100%;
	max-block-size: 1.9rem;
	transition: transform 0.25s ease;
}

@media (hover: hover) and (pointer: fine) {
	#page .pss-svc-brands__item:hover {
		border-color: var(--pss-color-red);
		box-shadow: inset 0 0 0 3px #fff, inset 0 0 0 4px rgba(221, 51, 51, 0.25), 0 0 0 3px rgba(221, 51, 51, 0.12), 0 10px 22px -10px rgba(185, 28, 28, 0.6);
	}

	#page .pss-svc-brands__item:hover img {
		transform: scale(1.06);
	}
}

@keyframes pss-brands-run {
	from {
		transform: translateX(calc(-1 * var(--pss-brand-set, 0px)));
	}
	to {
		transform: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-svc-brands,
	#page .pss-svc-brands__item,
	#page .pss-svc-brands__item img {
		transition: none;
	}

	.pss-svc-sheet__media.is-armed:not(.is-live) + .pss-svc-brands {
		opacity: 1;
		transform: none;
	}
}

.pss-svc-sheet__body.is-live > * {
	animation: pss-in-rise 0.5s ease-out backwards;
}

.pss-svc-sheet__body.is-live > :nth-child(2) { animation-delay: 0.06s; }
.pss-svc-sheet__body.is-live > :nth-child(3) { animation-delay: 0.12s; }
.pss-svc-sheet__body.is-live > :nth-child(4) { animation-delay: 0.18s; }
.pss-svc-sheet__body.is-live > :nth-child(5) { animation-delay: 0.24s; }
.pss-svc-sheet__body.is-live > :nth-child(6) { animation: none; }
.pss-svc-sheet__body.is-live > :nth-child(7) { animation-delay: 0.6s; }

.pss-svc-sheet__body.is-live .pss-svc-sheet__features li {
	animation: pss-in-slide 0.4s ease-out backwards;
	animation-delay: calc(0.3s + var(--i, 0) * 0.06s);
}

/* Below 1151px The7 floats its menu button at the top corner of the screen,
   where the stuck nav would sit under it. */
@media (max-width: 1150px) {
	body.floating-mobile-menu-icon .pss-svc-nav .pss-svc-nav__inner {
		box-sizing: border-box;
		padding-inline-end: 3.5rem;
	}
}

@media (max-width: 900px) {
	.pss-svc-band__grid {
		grid-template-columns: minmax(0, 1fr);
		align-items: start;
	}

	.pss-svc-sheet__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.pss-svc-sheet--alt .pss-svc-sheet__visual {
		order: 0;
	}

	.pss-svc-sheet__visual {
		width: min(100%, 41.5rem);
		margin-inline: auto;
	}
}

@media (max-width: 760px) {
	.pss-svc {
		--pss-svc-nav-h: 4.4rem;
	}

	#page .pss-svc-nav__tab {
		grid-template-columns: minmax(0, 1fr);
		grid-template-areas:
			"icon"
			"name";
		justify-items: center;
		row-gap: 0.35rem;
		padding: 0.6rem 0.35rem;
		text-align: center;
	}

	.pss-svc-nav__icon {
		width: 2rem;
		height: 2rem;
		border-radius: 0.5rem;
	}

	.pss-svc-nav__icon svg {
		width: 1.1rem;
		height: 1.1rem;
	}

	.pss-svc-nav__name {
		font-size: 0.78rem;
	}

	.pss-svc-nav__count {
		display: none;
	}

	.pss-svc-nav .pss-svc-nav__inner {
		width: 100%;
	}

	#page .pss-svc-nav__tab:first-child {
		border-inline-start: 0;
	}

	#page .pss-svc-nav__tab:last-child {
		border-inline-end: 0;
	}

	#page .pss-svc-sheet__features {
		grid-template-columns: minmax(0, 1fr);
	}

	.pss-svc-sheet__frame {
		--pss-corner: 1.1rem;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-svc-nav__tab::after,
	.pss-svc-nav__icon,
	.pss-svc-sheet__frame,
	#page .pss-svc-band__index a::after,
	#page .pss-svc-sheet__works a {
		transition: none;
	}
}

/* =========================================================
   Header (D-026). The top bar, then one row: the brand and the
   menu, plus the cart once the shop opens. On Home it lies over
   the video, transparent with white text; The7's fixed clone
   (#phantom) is the solid bar once the page scrolls, and
   js/pss-header.js copies the brand and actions into it.
   ========================================================= */

.pss-hdr__brand,
.pss-hdr__actions {
	display: none;
}

/* The7's own cart widgets (mobile bar, side menu) until the shop opens; see pss_store_enabled(). */
body.pss-store-off :is(.masthead, .dt-mobile-header) .wc-shopping-cart {
	display: none !important;
}

@media screen and (min-width: 1151px) {
	#page > .masthead .top-bar,
	#page > .masthead .header-bar.pss-hdr,
	#phantom .ph-wrap {
		box-sizing: border-box;
		width: 100% !important;
		max-width: none !important;
		padding-inline: max(clamp(1.1rem, 3vw, 1.5rem), calc((100% - 84rem) / 2)) !important;
	}

	#page > .masthead .header-bar.pss-hdr {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		align-items: center !important;
		column-gap: clamp(1.5rem, 3vw, 3rem);
		height: 5rem;
		min-height: 5rem !important;
		background: #fff;
		box-shadow: inset 0 -1px 0 var(--pss-color-line);
	}

	.masthead .pss-hdr > .branding {
		display: none !important;
	}

	.masthead .pss-hdr > .navigation {
		display: flex !important;
		grid-column: 2;
		justify-content: center;
		justify-self: center;
		width: auto !important;
		height: auto !important;
		min-height: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	.masthead .pss-hdr > .navigation::before {
		content: none !important;
	}

	.pss-hdr__brand {
		display: inline-flex;
		grid-column: 1;
		justify-self: start;
		align-items: center;
		gap: 0.75rem;
		min-width: 0;
		text-decoration: none !important;
	}

	.pss-hdr__brand img {
		flex: none;
		width: 2.75rem;
		height: 2.75rem;
	}

	.pss-hdr__name {
		display: grid;
		gap: 0.3rem;
		line-height: 1;
	}

	.pss-hdr__name strong {
		color: var(--pss-color-navy);
		font-size: 1.15rem;
		font-weight: 800;
		white-space: nowrap;
	}

	.pss-hdr__name span {
		color: var(--pss-color-muted);
		font-size: 0.7rem;
		font-weight: 700;
		letter-spacing: 0.14em;
		text-transform: uppercase;
		white-space: nowrap;
	}

	.pss-hdr__actions {
		display: flex;
		grid-column: 3;
		justify-self: end;
		align-items: center;
		gap: 0.75rem;
	}

	:is(#page, #phantom) .pss-hdr__cart {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 2.6rem;
		height: 2.6rem;
		border-radius: 50%;
		color: var(--pss-color-navy);
		box-shadow: inset 0 0 0 1.5px var(--pss-color-line);
		transition: color 0.2s ease, box-shadow 0.2s ease;
	}

	.pss-hdr__cart svg {
		width: 1.2rem;
		height: 1.2rem;
	}

	:is(#page, #phantom) .pss-hdr__cart:is(:hover, :focus-visible) {
		color: var(--pss-color-red);
		box-shadow: inset 0 0 0 1.5px var(--pss-color-red);
		outline: none;
	}

	/* Menu: uppercase labels; a red rule marks the current page and the hover. */
	:is(#page > .masthead, #phantom) .main-nav {
		display: flex;
		flex: 0 1 auto;
		width: auto !important;
		align-items: center;
		gap: clamp(1.25rem, 2.4vw, 2.5rem);
		margin: 0 !important;
	}

	:is(#page > .masthead, #phantom) .main-nav > li {
		margin: 0 !important;
	}

	:is(#page > .masthead, #phantom) .main-nav > li > a {
		position: relative;
		margin: 0 !important;
		padding: 0.7rem 0 !important;
		background: none !important;
		border-radius: 0 !important;
		box-shadow: none !important;
	}

	:is(#page > .masthead, #phantom) .main-nav > li > a::after {
		content: "";
		position: absolute;
		inset-inline: 0;
		inset-block-end: 0.2rem;
		height: 2px;
		background: var(--pss-color-red);
		transform: scaleX(0);
		transition: transform 0.25s var(--pss-ease);
	}

	:is(#page > .masthead, #phantom) .main-nav > li:is(.act, :hover, :focus-within) > a::after {
		transform: scaleX(1);
	}

	:is(#page > .masthead, #phantom) .main-nav > li > a .menu-text {
		color: var(--pss-color-navy) !important;
		font-size: 0.875rem !important;
		font-weight: 700 !important;
		letter-spacing: 0.08em;
		text-transform: uppercase;
	}

	/* Fixed clone: the same row, 70px, white. */
	#phantom {
		background: #fff !important;
		box-shadow: 0 1px 0 var(--pss-color-line), 0 10px 28px rgba(13, 28, 48, 0.08) !important;
	}

	#phantom .ph-wrap {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
		align-items: center;
		column-gap: clamp(1.5rem, 3vw, 3rem);
	}

	#phantom .logo-box,
	#phantom .widget-box {
		display: flex !important;
		align-items: center;
		margin: 0 !important;
		padding: 0 !important;
	}

	#phantom .logo-box {
		grid-column: 1;
		justify-self: start;
	}

	#phantom .widget-box {
		grid-column: 3;
		justify-self: end;
	}

	#phantom .menu-box {
		display: flex !important;
		grid-column: 2;
		justify-content: center;
		justify-self: center;
	}

	#phantom .pss-hdr__brand img {
		width: 2.4rem;
		height: 2.4rem;
	}

	#phantom .pss-hdr__name span {
		display: none;
	}
}

/* =========================================================
   Home video hero (D-026). Full-screen video under a navy
   shade and the blueprint grid; the header lies on top. The
   three discipline channels lead to their Services chapters.
   ========================================================= */

body.pss-video-hero #page {
	position: relative;
}

body.pss-video-hero #page > .masthead {
	position: absolute !important;
	inset-block-start: 0;
	inset-inline: 0;
	z-index: 30;
	background: transparent !important;
	box-shadow: none !important;
}

/*
 * Glass over the video. The blur sits on a pseudo-element: on the masthead
 * itself, backdrop-filter would trap The7's fixed mobile menu button.
 */
body.pss-video-hero #page > .masthead::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background: linear-gradient(180deg, rgba(255, 255, 255, 0.1), rgba(255, 255, 255, 0.04)), rgba(13, 28, 48, 0.32);
	box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.16), 0 10px 30px rgba(13, 28, 48, 0.18);
	-webkit-backdrop-filter: blur(14px) saturate(140%);
	backdrop-filter: blur(14px) saturate(140%);
}

@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	body.pss-video-hero #page > .masthead::before {
		background: rgba(13, 28, 48, 0.72);
	}
}

/* The shield's white parts are transparent; a fitted white disc keeps it whole on the glass. */
body.pss-video-hero #page > .masthead :is(.pss-hdr__brand img, .mobile-branding img) {
	box-sizing: border-box;
	padding: 0.3rem;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 2px 8px rgba(13, 28, 48, 0.25);
}

body.pss-video-hero #page > .masthead .top-bar .top-bar-bg {
	background: transparent !important;
}

body.pss-video-hero #page > .masthead .top-bar {
	box-shadow: inset 0 -1px 0 rgba(255, 255, 255, 0.12);
}

body.pss-video-hero #page > .masthead .top-bar :is(.mini-contacts, .mini-contacts a, .mini-contacts i) {
	color: rgba(255, 255, 255, 0.82) !important;
}

@media screen and (min-width: 1151px) {
	body.pss-video-hero #page > .masthead .header-bar.pss-hdr {
		background: transparent;
		box-shadow: none;
	}

	body.pss-video-hero #page > .masthead .main-nav > li > a .menu-text,
	body.pss-video-hero #page > .masthead .pss-hdr__name strong {
		color: #fff !important;
	}

	body.pss-video-hero #page > .masthead .pss-hdr__name span {
		color: rgba(255, 255, 255, 0.66);
	}

	body.pss-video-hero #page > .masthead .pss-hdr__cart {
		color: #fff;
		box-shadow: inset 0 0 0 1.5px rgba(255, 255, 255, 0.35);
	}
}

.pss-vh {
	--pss-vh-head: 7.25rem;
	--pss-in-dir: 1;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	display: flex;
	min-height: clamp(36rem, 100svh, 60rem);
	color: #fff;
	background: #0d1c30;
}

[dir="rtl"] .pss-vh {
	--pss-in-dir: -1;
}

.pss-vh__media,
.pss-vh__poster,
.pss-vh__video,
.pss-vh__shade,
.pss-vh__grid {
	position: absolute;
	inset: 0;
}

.pss-vh__media {
	z-index: -1;
}

.pss-vh__poster,
.pss-vh__video {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.pss-vh__shade {
	background:
		linear-gradient(180deg, rgba(13, 28, 48, 0.75) 0%, rgba(13, 28, 48, 0) 30%),
		linear-gradient(0deg, rgba(13, 28, 48, 0.96) 0%, rgba(13, 28, 48, 0) 40%),
		radial-gradient(45% 55% at 88% 82%, rgba(221, 51, 51, 0.14), transparent 70%),
		linear-gradient(90deg, rgba(13, 28, 48, 0.94) 0%, rgba(13, 28, 48, 0.72) 45%, rgba(20, 40, 68, 0.32) 100%);
}

[dir="rtl"] .pss-vh__shade {
	background:
		linear-gradient(180deg, rgba(13, 28, 48, 0.75) 0%, rgba(13, 28, 48, 0) 30%),
		linear-gradient(0deg, rgba(13, 28, 48, 0.96) 0%, rgba(13, 28, 48, 0) 40%),
		radial-gradient(45% 55% at 12% 82%, rgba(221, 51, 51, 0.14), transparent 70%),
		linear-gradient(270deg, rgba(13, 28, 48, 0.94) 0%, rgba(13, 28, 48, 0.72) 45%, rgba(20, 40, 68, 0.32) 100%);
}

.pss-vh__grid {
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: radial-gradient(70% 80% at 25% 45%, #000, transparent);
	mask-image: radial-gradient(70% 80% at 25% 45%, #000, transparent);
}

.pss-vh__inner {
	position: relative;
	display: flex;
	flex-direction: column;
	padding-block-start: calc(var(--pss-vh-head) + clamp(2rem, 6vh, 4.5rem));
}

.pss-vh__copy {
	display: flex;
	flex: 1 0 auto;
	flex-direction: column;
	justify-content: center;
	max-width: 60rem;
	padding-block-end: clamp(2.25rem, 6vh, 4rem);
}

.pss-vh .pss-cx-kicker::before {
	background: var(--pss-color-red);
}

.pss-vh__title {
	margin: 0 0 1.25rem;
	color: #fff;
	font-size: clamp(2.2rem, 4.2vw, 3.6rem);
	font-weight: 800;
	line-height: 1.08;
}

.pss-vh__title span {
	display: block;
}

.pss-vh__lead {
	max-width: 36rem;
	margin: 0;
	color: rgba(255, 255, 255, 0.8);
	font-size: var(--pss-fs-md);
	line-height: var(--pss-lh-body);
}

.pss-vh__actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 1rem 1.75rem;
	margin-block-start: 2rem;
}

#page .pss-hm-link.pss-hm-link--light {
	margin-block-start: 0;
	color: #fff;
}

/* Discipline channels along the bottom edge, then the video toggle. */
.pss-vh__rail {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	border-block-start: 1px solid rgba(255, 255, 255, 0.16);
}

#page .pss-vh__channels {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	margin: 0;
	padding: 0;
	list-style: none;
}

#page .pss-vh__channels > li {
	margin: 0;
	padding: 0;
}

#page .pss-vh__channels > li + li {
	border-inline-start: 1px solid rgba(255, 255, 255, 0.12);
}

#page .pss-vh__channel {
	position: relative;
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	grid-template-areas:
		"icon ref arrow"
		"icon name arrow"
		"icon count arrow";
	column-gap: 1rem;
	row-gap: 0.2rem;
	align-items: center;
	height: 100%;
	box-sizing: border-box;
	padding: 1.4rem clamp(1rem, 2vw, 1.75rem) 1.6rem;
	color: #fff;
	text-decoration: none;
	transition: background-color 0.25s ease;
}

#page .pss-vh__channels > li:first-child .pss-vh__channel {
	padding-inline-start: 0;
}

.pss-vh__channel::before {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-start: -1px;
	height: 2px;
	background: var(--pss-color-red);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.35s var(--pss-ease);
}

[dir="rtl"] .pss-vh__channel::before {
	transform-origin: right;
}

.pss-vh__ref {
	grid-area: ref;
	color: rgba(255, 255, 255, 0.5);
	font-size: 0.72rem;
	font-weight: 700;
	letter-spacing: 0.16em;
}

.pss-vh__icon {
	display: grid;
	grid-area: icon;
	place-items: center;
	width: 3rem;
	height: 3rem;
	border-radius: 0.75rem;
	color: var(--pss-color-red);
	background: rgba(13, 28, 48, 0.45);
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.18);
	transition: box-shadow 0.25s ease;
}

.pss-vh__icon svg {
	width: 1.5rem;
	height: 1.5rem;
}

.pss-vh__name {
	grid-area: name;
	font-size: 1.1rem;
	font-weight: 800;
	line-height: 1.2;
}

.pss-vh__count {
	grid-area: count;
	color: rgba(255, 255, 255, 0.66);
	font-size: var(--pss-fs-xs);
}

.pss-vh__channel > svg {
	grid-area: arrow;
	width: 1.15rem;
	height: 1.15rem;
	color: rgba(255, 255, 255, 0.5);
	transition: color 0.25s ease, transform 0.25s ease;
}

[dir="rtl"] .pss-vh__channel > svg {
	scale: -1 1;
}

#page .pss-vh__channel:is(:hover, :focus-visible) {
	background-color: rgba(255, 255, 255, 0.04);
	outline: none;
}

.pss-vh__channel:is(:hover, :focus-visible)::before {
	transform: scaleX(1);
}

.pss-vh__channel:is(:hover, :focus-visible) .pss-vh__icon {
	box-shadow: inset 0 0 0 1px rgba(221, 51, 51, 0.7);
}

.pss-vh__channel:is(:hover, :focus-visible) > svg {
	color: var(--pss-color-red);
	transform: translateX(calc(var(--pss-in-dir) * 4px));
}

#page .pss-vh__toggle {
	display: inline-grid;
	place-items: center;
	width: 2.75rem;
	height: 2.75rem;
	min-height: 0;
	margin: 0;
	margin-inline-start: clamp(1rem, 2vw, 1.75rem);
	padding: 0 !important;
	border: 0 !important;
	border-radius: 50% !important;
	color: #fff !important;
	background: rgba(255, 255, 255, 0.08) !important;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.28);
	cursor: pointer;
	transition: box-shadow 0.2s ease;
}

#page .pss-vh__toggle[hidden] {
	display: none;
}

#page .pss-vh__toggle:hover {
	box-shadow: inset 0 0 0 1.5px var(--pss-color-red);
}

#page .pss-vh__toggle:focus-visible {
	outline: 2px solid #fff;
	outline-offset: 3px;
}

.pss-vh__toggle svg {
	grid-area: 1 / 1;
	width: 1rem;
	height: 1rem;
}

.pss-vh__toggle-play,
.pss-vh:not(.is-playing) .pss-vh__toggle-pause {
	display: none;
}

.pss-vh:not(.is-playing) .pss-vh__toggle-play {
	display: block;
}

/* One entrance on load: the copy rises line by line, then the channels. */
.pss-vh__copy > *,
.pss-vh__channels > li {
	animation: pss-in-rise 0.7s var(--pss-ease) both;
}

.pss-vh__copy > :nth-child(2) { animation-delay: 0.08s; }
.pss-vh__copy > :nth-child(3) { animation-delay: 0.16s; }
.pss-vh__copy > :nth-child(4) { animation-delay: 0.24s; }

.pss-vh__channels > li {
	animation-delay: calc(0.35s + var(--i, 0) * 0.08s);
}

@media screen and (max-width: 1150px) {
	body.pss-video-hero #page > .masthead .mobile-header-bar :is(.pss-brand-name, .near-logo-first-switch, .near-logo-second-switch) :is(p, span) {
		color: #fff !important;
	}

	body.pss-video-hero #page > .masthead .mobile-header-bar .menu-line,
	body.pss-video-hero #page > .masthead .mobile-header-bar .menu-line::before,
	body.pss-video-hero #page > .masthead .mobile-header-bar .menu-line::after {
		background: #fff !important;
	}
}

@media screen and (max-width: 900px) {
	.pss-vh__rail {
		grid-template-columns: minmax(0, 1fr);
	}

	#page .pss-vh__channels {
		grid-template-columns: minmax(0, 1fr);
	}

	#page .pss-vh__channels > li + li {
		border-inline-start: 0;
		border-block-start: 1px solid rgba(255, 255, 255, 0.12);
	}

	#page .pss-vh__channel {
		grid-template-columns: auto minmax(0, 1fr) auto;
		grid-template-areas:
			"icon name arrow"
			"icon count arrow";
		padding: 0.95rem 0;
	}

	.pss-vh__ref {
		display: none;
	}

	.pss-vh__icon {
		width: 2.5rem;
		height: 2.5rem;
	}

	.pss-vh__inner {
		padding-block-start: calc(var(--pss-vh-head) + 4.5rem);
	}

	#page .pss-vh__toggle {
		position: absolute;
		inset-block-start: calc(var(--pss-vh-head) + 1rem);
		inset-inline-end: 0;
		margin: 0;
	}
}

@media screen and (max-width: 560px) {
	.pss-vh__actions {
		flex-direction: column;
		align-items: flex-start;
	}
}

@media (prefers-reduced-motion: reduce) {
	.pss-vh__copy > *,
	.pss-vh__channels > li {
		animation: none;
	}

	.pss-vh__channel::before,
	.pss-vh__channel > svg,
	:is(#page > .masthead, #phantom) .main-nav > li > a::after {
		transition: none;
	}
}

/* =========================================================
   Footer (D-027), sidebar-footer.php. A navy band with the
   blueprint grid, lit by a red glow: a glowing red rule on top
   and red light rising from two corners. Brand, services,
   company links, contact; then a base strip with the
   copyright and the ISO standards. Shared by every page.
   ========================================================= */

#footer.pss-ft {
	/* #page is The7's named grid; without this the footer lands in the first free row. */
	grid-area: footer;
	position: relative;
	isolation: isolate;
	overflow: hidden;
	margin: 0;
	padding: 0;
	color: rgba(255, 255, 255, 0.78);
	font-size: 0.95rem;
	line-height: 1.6;
	/* A step darker than the navy bands, so a survey band right above still reads as its own section. */
	background:
		radial-gradient(45% 80% at 100% 0%, rgba(221, 51, 51, 0.36), transparent 70%),
		radial-gradient(40% 85% at 0% 100%, rgba(221, 51, 51, 0.28), transparent 70%),
		linear-gradient(180deg, #142844 0%, #0d1c30 70%);
	box-shadow:
		inset 0 3px 0 var(--pss-color-red),
		inset 0 26px 40px -22px rgba(221, 51, 51, 0.75);
}

#footer.pss-ft::before {
	content: "";
	position: absolute;
	z-index: -1;
	inset: 0;
	background-image:
		linear-gradient(rgba(255, 255, 255, 0.045) 1px, transparent 1px),
		linear-gradient(90deg, rgba(255, 255, 255, 0.045) 1px, transparent 1px);
	background-size: 44px 44px;
	-webkit-mask-image: radial-gradient(80% 100% at 15% 30%, #000, transparent);
	mask-image: radial-gradient(80% 100% at 15% 30%, #000, transparent);
}

#footer.pss-ft a {
	color: inherit;
	text-decoration: none;
}

.pss-ft__inner {
	display: grid;
	grid-template-columns: minmax(0, 1.35fr) minmax(0, 1fr) minmax(0, 0.65fr) minmax(0, 1.25fr);
	gap: clamp(2rem, 4vw, 3.5rem);
	padding-block: clamp(1.65rem, 3vw, 2.4rem) clamp(1.35rem, 2.7vw, 1.95rem);
}

/* Brand */
#footer.pss-ft .pss-ft__logo {
	display: inline-flex;
	align-items: center;
	gap: 0.85rem;
}

.pss-ft__logo img {
	box-sizing: border-box;
	flex: none;
	width: 3.25rem;
	height: 3.25rem;
	padding: 0.32rem;
	border-radius: 50%;
	background: #fff;
	box-shadow: 0 6px 18px rgba(13, 28, 48, 0.35);
}

.pss-ft__name {
	display: grid;
	gap: 0.35rem;
	line-height: 1;
}

.pss-ft__name strong {
	color: #fff;
	font-size: 1.2rem;
	font-weight: 800;
}

.pss-ft__name span {
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.pss-ft__about {
	max-width: 23rem;
	margin: 1.35rem 0 0;
	color: rgba(255, 255, 255, 0.72);
	line-height: 1.7;
}

.pss-ft__social {
	display: flex;
	flex-wrap: wrap;
	gap: 0.6rem;
	margin: 1.5rem 0 0;
	padding: 0;
	list-style: none;
}

.pss-ft__social li {
	margin: 0;
}

#footer.pss-ft .pss-ft__social a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 2.5rem;
	height: 2.5rem;
	border-radius: 50%;
	color: #fff;
	box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.22);
	transition: background-color 0.2s ease, box-shadow 0.2s ease;
}

.pss-ft__social svg {
	width: 1.05rem;
	height: 1.05rem;
}

#footer.pss-ft .pss-ft__social a:is(:hover, :focus-visible) {
	background: var(--pss-color-red);
	box-shadow: inset 0 0 0 1px var(--pss-color-red), 0 0 18px rgba(221, 51, 51, 0.55);
	outline: none;
}

/* Column titles: a short red rule, then the label. */
#footer.pss-ft .pss-ft__title {
	display: flex;
	align-items: center;
	gap: 0.65rem;
	margin: 0 0 1.25rem;
	padding: 0;
	color: #fff;
	font: inherit;
	font-size: 0.78rem;
	font-weight: 800;
	line-height: 1;
	letter-spacing: 0.16em;
	text-transform: uppercase;
}

#footer.pss-ft .pss-ft__title::before {
	content: "";
	flex: none;
	width: 1.25rem;
	height: 2px;
	background: var(--pss-color-red);
	box-shadow: 0 0 8px rgba(221, 51, 51, 0.7);
}

/* Services: the three disciplines, numbered like drawing references. */
.pss-ft__disciplines {
	margin: 0;
	padding: 0;
	list-style: none;
}

.pss-ft__disciplines li {
	margin: 0;
	border-block-start: 1px solid rgba(255, 255, 255, 0.1);
}

.pss-ft__disciplines li:last-child {
	border-block-end: 1px solid rgba(255, 255, 255, 0.1);
}

#footer.pss-ft .pss-ft__disciplines a {
	display: grid;
	grid-template-columns: auto minmax(0, 1fr) auto;
	align-items: center;
	gap: 0.9rem;
	padding-block: 0.8rem;
}

.pss-ft__ref {
	color: var(--pss-color-red);
	font-size: 0.72rem;
	font-weight: 800;
	letter-spacing: 0.08em;
	text-shadow: 0 0 10px rgba(221, 51, 51, 0.6);
}

.pss-ft__discipline {
	display: grid;
	gap: 0.2rem;
	line-height: 1.2;
}

.pss-ft__discipline strong {
	color: #fff;
	font-size: 0.98rem;
	font-weight: 700;
}

.pss-ft__discipline span {
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.78rem;
}

.pss-ft__arrow {
	width: 1rem;
	height: 1rem;
	color: rgba(255, 255, 255, 0.4);
	transition: color 0.2s ease, transform 0.2s ease;
}

#footer.pss-ft .pss-ft__disciplines a:is(:hover, :focus-visible) .pss-ft__arrow {
	color: var(--pss-color-red);
	transform: translateX(0.2rem);
}

[dir="rtl"] .pss-ft__arrow {
	transform: scaleX(-1);
}

[dir="rtl"] #footer.pss-ft .pss-ft__disciplines a:is(:hover, :focus-visible) .pss-ft__arrow {
	transform: scaleX(-1) translateX(0.2rem);
}

#footer.pss-ft .pss-ft__disciplines a:focus-visible {
	outline: 2px solid var(--pss-color-red);
	outline-offset: 2px;
}

/* Company: the "Footer" menu. */
.pss-ft__links {
	display: grid;
	gap: 0.35rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pss-ft__links li {
	margin: 0;
}

#footer.pss-ft .pss-ft__links a {
	position: relative;
	display: inline-block;
	padding-block: 0.25rem;
	color: rgba(255, 255, 255, 0.78);
	transition: color 0.2s ease;
}

#footer.pss-ft .pss-ft__links a::after {
	content: "";
	position: absolute;
	inset-inline: 0;
	inset-block-end: 0;
	height: 2px;
	background: var(--pss-color-red);
	box-shadow: 0 0 8px rgba(221, 51, 51, 0.7);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.25s ease;
}

[dir="rtl"] #footer.pss-ft .pss-ft__links a::after {
	transform-origin: right;
}

#footer.pss-ft .pss-ft__links :is(.current-menu-item, .current_page_item) > a,
#footer.pss-ft .pss-ft__links a:is(:hover, :focus-visible) {
	color: #fff;
	outline: none;
}

#footer.pss-ft .pss-ft__links :is(.current-menu-item, .current_page_item) > a::after,
#footer.pss-ft .pss-ft__links a:is(:hover, :focus-visible)::after {
	transform: scaleX(1);
}

/* Contact */
.pss-ft__contact {
	display: grid;
	gap: 0.9rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pss-ft__contact li {
	display: grid;
	grid-template-columns: 1.15rem minmax(0, 1fr);
	align-items: start;
	gap: 0.75rem;
	margin: 0;
	line-height: 1.55;
}

.pss-ft__icon {
	width: 1.15rem;
	height: 1.15rem;
	margin-block-start: 0.15rem;
	color: var(--pss-color-red);
	filter: drop-shadow(0 0 5px rgba(221, 51, 51, 0.55));
}

.pss-ft__stack {
	display: grid;
	gap: 0.15rem;
	justify-items: start;
}

#footer.pss-ft .pss-ft__contact a {
	color: rgba(255, 255, 255, 0.78);
	overflow-wrap: anywhere;
	transition: color 0.2s ease;
}

#footer.pss-ft .pss-ft__contact a:is(:hover, :focus-visible) {
	color: #fff;
	text-decoration: underline;
	text-decoration-color: var(--pss-color-red);
	text-underline-offset: 0.25em;
	outline: none;
}

/* Base strip */
.pss-ft__base {
	border-block-start: 1px solid rgba(255, 255, 255, 0.1);
	background: rgba(13, 28, 48, 0.7);
}

.pss-ft__base-inner {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 0.6rem 2rem;
	padding-block: 1.1rem;
}

.pss-ft__copy {
	margin: 0;
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.82rem;
}

.pss-ft__iso {
	display: flex;
	flex-wrap: wrap;
	gap: 0.35rem 0.9rem;
	margin: 0;
	padding: 0;
	list-style: none;
}

.pss-ft__iso li {
	display: inline-flex;
	align-items: center;
	gap: 0.9rem;
	margin: 0;
	color: rgba(255, 255, 255, 0.55);
	font-size: 0.74rem;
	font-weight: 700;
	letter-spacing: 0.06em;
	white-space: nowrap;
}

.pss-ft__iso li + li::before {
	content: "";
	width: 3px;
	height: 3px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.3);
}

@media screen and (max-width: 1100px) {
	.pss-ft__inner {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
}

@media screen and (max-width: 620px) {
	.pss-ft__inner {
		grid-template-columns: minmax(0, 1fr);
		gap: 2.25rem;
	}

	.pss-ft__links {
		display: flex;
		flex-wrap: wrap;
		gap: 0.25rem 1.5rem;
	}

	.pss-ft__base-inner {
		flex-direction: column;
		align-items: flex-start;
	}

	/* The list wraps here, and a dot would start the second line. */
	.pss-ft__iso li + li::before {
		content: none;
	}
}

@media (prefers-reduced-motion: reduce) {
	#footer.pss-ft .pss-ft__social a,
	.pss-ft__arrow,
	#footer.pss-ft .pss-ft__links a,
	#footer.pss-ft .pss-ft__links a::after,
	#footer.pss-ft .pss-ft__contact a {
		transition: none;
	}
}
