:root {
	--navy:#082c59;
	--blue:#075caa;
	--teal:#009cb4;
	--ink:#122f50;
	--muted:#5e7184;
	--line:#d5e6f0;
	--ice:#f0f7fc;
	--radius:14px
}

* {
	box-sizing:border-box
}

html {
	scroll-behavior:smooth;
	scroll-padding-top:110px
}

body {
	margin:0;
	font-family:Arial,Helvetica,sans-serif;
	color:var(--ink);
	background:#fff;
	font-size:16px;
	line-height:1.6
}

a {
	color:inherit;
	text-decoration:none
}

button,input,textarea {
	font:inherit
}

button,a,input,textarea {
	-webkit-tap-highlight-color:transparent
}

button {
	cursor:pointer
}

img {
	max-width:100%;
	display:block
}

button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible {
	outline:3px solid var(--teal);
	outline-offset:5px
}

h1,h2,h3,p {
	margin-top:0
}

h1,h2,h3 {
	color:var(--navy);
	line-height:1.15;
	letter-spacing:-.035em
}

h1 {
	font-size:clamp(32px,3.5vw,50px);
	margin-bottom:26px
}

h2 {
	font-size:clamp(28px,2.6vw,38px);
	margin-bottom:28px
}

h3 {
	font-size:22px
}

.container {
	width:min(1170px,calc(100% - 80px));
	margin-inline:auto
}

.section {
	padding-block:80px
}

.section-blue {
	background:linear-gradient(125deg,#f5faff,#eaf5fc)
}

.eyebrow {
	font-size:11px;
	font-weight:700;
	letter-spacing:.14em;
	color:#087e99;
	margin-bottom:18px
}

.button {
	display:inline-flex;
	align-items:center;
	justify-content:center;
	gap:24px;
	background:var(--teal);
	border:0;
	border-radius:7px;
	color:white;
	padding:15px 23px;
	font-size:14px;
	line-height:1.5;
	font-weight:700;
	transition:background .2s,transform .2s
}

.button:hover {
	background:#007f9a;
	transform:translateY(-2px)
}

.text-link {
	font-size:14px;
	font-weight:700;
	color:#007c9c;
	display:inline-flex;
	gap:28px;
	align-items:center
}

.text-link:hover {
	text-decoration:underline
}

.skip-link {
	position:fixed;
	top:-80px;
	background:white;
	padding:12px;
	z-index:100
}

.skip-link:focus {
	top:0
}

#header {
	position:sticky;
	top:0;
	z-index:30;
	background:rgba(255,255,255,.97);
	border-bottom:1px solid var(--line);
	box-shadow:0 2px 14px #12365507
}

.header-inner {
	display:flex;
	align-items:center;
	gap:30px;
	min-height:102px
}

.logo {
	width:240px;
	flex-shrink:0
}

.logo img {
	width:100%;
	height:68px;
	object-fit:contain
}

#main_menu {
	display:flex;
	align-items:center;
	gap:25px;
	margin-left:auto
}

#main_menu>a,.nav-group>a {
	font-size:13px;
	font-weight:700;
	white-space:nowrap;
	display:block;
	padding:35px 0
}

.active {
	color:var(--teal)
}

#main_menu a:hover {
	color:var(--teal)
}

.nav-group {
	position:relative
}

.nav-group>a {
	display:flex;
	align-items:center;
	gap:7px
}

.menu-arrow {
	width:6px;
	height:6px;
	flex-shrink:0;
	border-right:1.5px solid currentColor;
	border-bottom:1.5px solid currentColor;
	transform:translateY(-2px) rotate(45deg)
}

.submenu {
	display:none;
	position:absolute;
	top:100%;
	left:-20px;
	min-width:220px;
	background:white;
	border:1px solid var(--line);
	border-radius:0 0 10px 10px;
	box-shadow:0 14px 25px #12365512;
	padding:12px
}

.submenu a {
	display:block;
	padding:9px 12px;
	font-size:14px
}

.nav-group:hover .submenu,.nav-group:focus-within .submenu {
	display:block
}

.header-cta {
	white-space:nowrap;
	padding:12px 17px;
	gap:15px
}

.menu-toggle {
	display:none
}

.menu-toggle svg { width:22px; height:22px; }
.menu-toggle .menu-icon-close { display:none; }
.menu-toggle[aria-expanded=true] .menu-icon-open { display:none; }
.menu-toggle[aria-expanded=true] .menu-icon-close { display:block; }

.hero {
	position:relative;
	background:#eaf6ff
}

.hero-slide {
	display:block
}

.hero-slide[hidden] {
	display:none
}

.hero.is-ready {
	display:grid
}

.hero.is-ready .hero-slide {
	grid-area:1 / 1;
	min-width:0;
	opacity:0;
	visibility:hidden;
	pointer-events:none;
	transition:opacity .7s ease-in-out, visibility 0s .7s
}

.hero.is-ready .hero-slide.is-active {
	opacity:1;
	visibility:visible;
	pointer-events:auto;
	transition-delay:0s
}

.hero-slide img {
	width:100%;
	aspect-ratio:3/1;
	object-fit:contain
}

.hero-controls {
	position:absolute;
	z-index:2;
	bottom:15px;
	right:40px;
	display:flex;
	align-items:center;
	gap:10px;
	border:1px solid #d4e8f3;
	background:#ffffffed;
	border-radius:18px;
	padding:6px;
	box-shadow:0 6px 24px #0b315d14
}

.hero-controls button,.carousel-buttons button {
	width:36px;
	height:36px;
	border:1px solid var(--line);
	border-radius:50%;
	background:white;
	color:var(--blue);
	font-size:19px;
	line-height:1
}

.hero-controls button:hover,.carousel-buttons button:hover {
	background:#e0f6fa
}

.hero-dots {
	display:flex;
	gap:9px;
	padding:0 8px
}

.hero-dots button {
	width:8px;
	height:8px;
	border:0;
	background:#bbd5e6;
	padding:0
}

.hero-dots button[aria-pressed=true] {
	background:var(--teal);
	width:22px;
	border-radius:8px
}

.intro {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:75px;
	align-items:center
}

.intro h1 {
	max-width:540px
}

.prose {
	font-size:16px;
	color:var(--muted);
	line-height:1.85
}

.prose h2 {
	font-size:28px;
	margin-top:25px
}

.prose h3 {
	font-size:22px;
	margin-top:30px
}

.prose li {
	margin-bottom:9px
}

.prose p {
	margin-bottom:20px
}

.intro-visual {
	height:330px;
	border-radius:16px;
	position:relative;
	overflow:hidden;
	background:#e7f3fb
}

.intro-visual>img {
	width:100%;
	height:100%;
	object-fit:cover;
	object-position:right;
	transform:scale(1.02)
}

.intro-note {
	position:absolute;
	bottom:0;
	left:0;
	right:0;
	padding:20px 28px;
	background:linear-gradient(90deg,#08345f,#075caae8);
	color:white;
	display:flex;
	flex-direction:column;
	line-height:1.4
}

.intro-note span {
	font-size:14px
}

.intro-note strong {
	font-size:23px
}

.section-heading {
	display:flex;
	justify-content:space-between;
	align-items:end;
	gap:30px;
	margin-bottom:32px
}

.section-heading h2 {
	margin:0
}

.section-heading .eyebrow {
	margin-bottom:12px
}

.card-grid {
	display:grid;
	gap:18px
}

.solutions-grid {
	grid-template-columns:repeat(5,minmax(0,1fr))
}

.content-card {
	display:flex;
	flex-direction:column;
	background:#fff;
	border:1px solid var(--line);
	border-radius:var(--radius);
	overflow:hidden;
	transition:transform .25s,box-shadow .25s,border-color .25s
}

.content-card:hover {
	transform:translateY(-5px);
	border-color:#7cc8dd;
	box-shadow:0 14px 30px #12365512
}

.card-image {
	height:155px;
	overflow:hidden;
	background:#edf6fb
}

.card-image img {
	height:100%;
	width:100%;
	object-fit:cover;
	object-position:right;
	transition:transform .4s
}

.content-card:hover img {
	transform:scale(1.04)
}

.card-copy {
	padding:24px 20px 64px;
	position:relative;
	flex:1
}

.card-copy h3 {
	font-size:21px;
	letter-spacing:-.03em;
	margin-bottom:13px
}

.card-copy p {
	font-size:14px;
	line-height:1.6;
	color:var(--muted);
	margin:0
}

.card-arrow {
	position:absolute;
	bottom:20px;
	right:20px;
	border:1px solid #99d5e5;
	width:29px;
	height:29px;
	display:grid;
	place-items:center;
	color:var(--teal);
	border-radius:50%;
	font-size:19px
}

.section-actions {
	display:flex;
	gap:30px;
	align-items:center
}

.carousel-buttons {
	display:flex;
	gap:8px;
	align-items:center
}

.product-track {
	display:flex;
	gap:22px;
	overflow-x:auto;
	scroll-snap-type:x mandatory;
	scrollbar-width:thin;
	scrollbar-color:#8dc8db #edf5fa;
	padding-bottom:16px
}

.product-track .content-card {
	flex:0 0 calc((100% - 66px)/4);
	scroll-snap-align:start
}

.offerings .card-image {
	height:210px
}

.offerings .card-image img {
	object-fit:contain;
	object-position:center
}

.offerings .card-copy h3 {
	max-width:260px;
	font-size:23px
}

.offerings-grid {
	grid-template-columns:repeat(4,minmax(0,1fr))
}

.subtle {
	font-size:13px;
	color:var(--muted);
	margin:18px 0 0
}

.technology-grid {
	grid-template-columns:repeat(4,minmax(0,1fr))
}

.technology-grid .card-title {
	display:flex;
	align-items:center;
	gap:12px;
	margin-bottom:16px
}

.technology-grid h3 {
	font-size:20px;
	margin:0
}

.cta {
	background:linear-gradient(110deg,#073365,#075eab);
	padding-block:64px;
	color:#d2e7f6;
	position:relative;
	overflow:hidden
}

.cta:after {
	content:'';
	position:absolute;
	width:500px;
	height:500px;
	right:-100px;
	top:-260px;
	border:1px solid #ffffff20;
	border-radius:50%;
	pointer-events:none
}

.cta-inner {
	display:flex;
	justify-content:space-between;
	align-items:center;
	gap:70px
}

.cta h2 {
	color:white;
	max-width:750px;
	font-size:34px;
	margin-bottom:16px
}

.cta .eyebrow {
	color:#73d3e4
}

.cta p:last-child {
	margin:0
}

.cta .button {
	flex-shrink:0
}

#footer {
	background:#06264a;
	color:#b7ccdf;
	padding:65px 0 22px
}

.footer-grid {
	display:grid;
	grid-template-columns:1.3fr 1fr 1fr 1fr;
	gap:45px
}

.footer-brand {
	font-size:32px;
	font-weight:800;
	letter-spacing:-.04em;
	color:white
}

.footer-brand span {
	color:#48c1d4
}

.footer-grid>div>p {
	font-size:10px;
	letter-spacing:.08em;
	margin-top:5px
}

.footer-grid>div>.footer-tagline {
	font-size:14px;
	letter-spacing:0;
	line-height:1.8;
	margin-top:24px
}

.footer-grid h3 {
	font-size:15px;
	color:white;
	letter-spacing:0;
	margin:7px 0 21px
}

.footer-grid>div>a:not(.footer-brand) {
	display:block;
	font-size:14px;
	margin-bottom:10px
}
.footer-address {
	font-size:14px;
	margin-bottom:10px
}
.footer-grid a:hover {
	color:white
}

.footer-contact {
	color:#64cddd
}

.footer-address {
	font-size:14px;
	line-height:1.6;
	margin:10px 0
}

.footer-address>span {
	display:block;
	font-size:12px;
	color:#64cddd;
	margin-bottom:4px
}

.footer-address address {
	font-style:normal;
	margin:0
}

.footer-grid>div>a.footer-contact-item,
.footer-address {
	display:flex;
	align-items:center;
	gap:10px
}

.footer-contact-icon {
	width:18px;
	height:18px;
	flex:0 0 18px;
	margin-top:2px;
	color:#64cddd
}

.footer-contact-item>span {
	min-width:0;
	overflow-wrap:anywhere
}

.footer-bottom {
	display:flex;
	justify-content:space-between;
	gap:20px;
	border-top:1px solid #ffffff19;
	margin-top:45px;
	padding-top:21px;
	font-size:11px
}

.breadcrumb {
	color:var(--muted);
	font-size:12px;
	padding-block:24px
}

.breadcrumb a {
	color:#007d9d
}

.page-heading {
	padding-top:10px
}

.page-heading h1 {
	margin-bottom:20px
}

.page-lead {
	font-size:20px;
	color:#4b677f;
	line-height:1.6;
	max-width:850px
}

.listing {
	padding-top:30px
}

.detail-banner {
	background:var(--ice)
}

.detail-banner>picture>img {
	width:100%;
	/*max-height:550px;*/
	object-fit:contain
}

.detail-layout {
	display:grid;
	grid-template-columns:minmax(0,1.65fr) minmax(300px,1fr);
	gap:80px;
	align-items:start
}

.detail-aside {
	border:1px solid var(--line);
	border-radius:14px;
	padding:30px;
	background:var(--ice)
}

.detail-aside h2 {
	font-size:28px
}

.detail-aside p {
	color:var(--muted)
}

.aside-links {
	margin-top:30px
}

.aside-links a {
	display:flex;
	justify-content:space-between;
	border-top:1px solid var(--line);
	padding:12px 0;
	font-size:14px
}

.detail-layout .prose {
	margin-bottom:30px
}

.contact-panel {
	border:1px solid var(--line);
	border-radius:16px;
	padding:32px;
	background:var(--ice)
}

.contact-panel h2 {
	font-size:28px;
	margin-bottom:12px
}

.contact-panel>p {
	font-size:12px;
	color:var(--muted)
}

form label {
	display:block;
	font-size:13px;
	font-weight:700;
	margin-bottom:17px
}

input,textarea {
	display:block;
	margin-top:6px;
	width:100%;
	padding:11px 13px;
	border:1px solid #c7dce9;
	border-radius:5px;
	color:var(--ink);
	background:white;
	min-width:0
}

textarea {
	resize:vertical
}

.form-row {
	display:grid;
	grid-template-columns:1fr 1fr;
	gap:14px
}

.consent {
	display:flex;
	gap:10px;
	align-items:start;
	font-weight:400;
	font-size:11px
}

.consent input {
	width:17px;
	flex-shrink:0
}

.consent a {
	text-decoration:underline
}

.honeypot {
	position:absolute;
	left:-9999px;
	width:1px;
	height:1px;
	overflow:hidden
}

.form-success,.form-errors {
	padding:18px;
	border-radius:6px;
	font-size:14px;
	margin-bottom:24px
}

.form-success {
	background:#ddf4ea;
	color:#145d40
}

.form-errors {
	background:#ffedeb;
	color:#8c3025
}

.empty-page {
	min-height:450px
}

@media(min-width:1800px) {
	.hero-slide img {
		max-height:calc(100vh - 102px)
	}
}

@media(max-width:1200px) {
	.container {
		width:calc(100% - 48px)
	}
	.header-inner {
		gap:20px
	}
	.logo {
		width:195px
	}
	#main_menu {
		gap:15px
	}
	#main_menu>a,.nav-group>a {
		font-size:11px
	}
	.header-cta {
		font-size:12px
	}
	.intro {
		gap:40px
	}
	.solutions-grid {
		gap:12px
	}
	.card-copy {
		padding:19px 15px 60px
	}
	.card-copy h3 {
		font-size:19px
	}
	.card-copy p {
		font-size:13px
	}
	.card-image {
		height:140px
	}
}

@media(max-width:980px) {
	.header-inner {
		min-height:85px
	}
	.logo {
		width:220px
	}
	.menu-toggle {
		display:inline-flex;
		align-items:center;
		justify-content:center;
		padding:0;
		margin-left:0;
		flex-shrink:0;
		border:0;
		background:var(--ice);
		color:var(--navy);
		font-size:24px;
		width:44px;
		height:44px;
		border-radius:5px
	}
	.header-cta {
		font-size:13px;
		margin-left:auto;
		flex-shrink:0
	}
	#main_menu {
		display:none;
		position:absolute;
		top:85px;
		left:0;
		right:0;
		background:white;
		padding:20px 24px;
		border-bottom:1px solid var(--line);
		box-shadow:0 15px 20px #12365512;
		max-height:calc(100dvh - 85px);
		overflow:auto
	}
	#main_menu.is-open {
		display:block
	}
	#main_menu>a,.nav-group>a {
		font-size:15px;
		padding:12px 0
	}
	.submenu {
		display:block;
		position:static;
		box-shadow:none;
		border:0;
		border-left:2px solid var(--line);
		border-radius:0;
		margin-left:8px;
		padding:0 15px
	}
	.submenu a {
		padding:6px;
		font-size:13px
	}
	.solutions-grid {
		grid-template-columns:repeat(3,minmax(0,1fr))
	}
	.technology-grid {
		grid-template-columns:repeat(2,minmax(0,1fr))
	}
	.intro {
		gap:30px
	}
	.section {
		padding-block:60px
	}
	.intro-visual {
		height:350px
	}
	.section-actions {
		gap:15px;
		flex-direction:column;
		align-items:end
	}
	.detail-layout {
		gap:35px;
		grid-template-columns:1.3fr 1fr
	}
	.footer-grid {
		gap:25px
	}
	.cta-inner {
		gap:30px
	}
	.cta h2 {
		font-size:28px
	}
	.hero-controls {
		bottom:10px;
		right:20px;
		transform:scale(.85);
		transform-origin:right bottom
	}
}

@media(max-width:700px) {
	.container {
		width:calc(100% - 36px)
	}
	.header-inner {
		gap:12px;
		min-height:78px
	}
	.logo {
		width:170px
	}
	.logo img {
		height:55px
	}
	.header-cta {
		padding:10px 13px;
		font-size:12px;
		gap:0
	}
	.header-cta span {
		display:none
	}
	.menu-toggle {
		width:36px;
		height:36px;
		font-size:21px
	}
	#main_menu {
		top:78px
	}
	.section {
		padding-block:45px
	}
	.intro {
		grid-template-columns:1fr;
		gap:30px
	}
	.intro-visual {
		height:240px
	}
	.intro-note {
		padding:17px 22px
	}
	.section-heading {
		gap:20px;
		align-items:start;
		flex-direction:column;
		margin-bottom:25px
	}
	.section-heading h2 {
		font-size:30px
	}
	.eyebrow {
		font-size:10px
	}
	.solutions-grid {
		grid-template-columns:1fr;
		gap:12px
	}
	.card-image {
		height:135px
	}
	.card-copy {
		padding:20px 15px 60px
	}
	.card-copy h3 {
		font-size:20px
	}
	.card-copy p {
		font-size:13px
	}
	.technology-grid {
		grid-template-columns:1fr;
		gap:12px
	}
	.technology-grid h3 {
		font-size:21px
	}
	.section-actions {
		flex-direction:row;
		justify-content:space-between;
		width:100%;
		align-items:center
	}
	.section-actions .text-link {
		font-size:12px
	}
	.carousel-buttons button {
		width:32px;
		height:32px
	}
	.product-track .content-card {
		flex-basis:78%
	}
	.product-track {
		gap:15px
	}
	.offerings .card-image {
		height:190px
	}
	.offerings-grid {
		grid-template-columns:repeat(2,minmax(0,1fr))
	}
	.offerings-grid .card-copy h3 {
		font-size:20px
	}
	.cta-inner {
		align-items:start;
		flex-direction:column;
		gap:25px
	}
	.cta {
		padding-block:45px
	}
	.cta h2 {
		font-size:30px
	}
	.footer-grid {
		grid-template-columns:1fr;
		gap:30px 20px
	}
	.footer-grid>div.footer-links>a:not(.footer-brand) {
		display:inline-block;
		margin-right:16px;
		vertical-align:top
	}
	#footer {
		padding-top:45px
	}
	.footer-bottom {
		flex-direction:column;
		gap:8px
	}
	.detail-layout {
		grid-template-columns:1fr;
		gap:35px
	}
	.page-lead {
		font-size:18px
	}
	.contact-panel {
		padding:24px
	}
	.form-row {
		grid-template-columns:1fr;
		gap:0
	}
	.detail-banner>picture>img {
		/*min-height:180px;*/
		object-fit:cover;
		object-position:center
	}
	.hero-controls {
		position:static;
		justify-content:center;
		border:0;
		border-radius:0;
		background:#eef7fd;
		transform:none;
		padding:9px
	}
	.hero-slide img {
		aspect-ratio:1672/941;
		object-fit:contain
	}
	.hero-controls button {
		height:30px;
		width:30px
	}
	.hero-dots button {
		width:7px;
		height:7px
	}
	.hero-dots button[aria-pressed=true] {
		width:20px
	}
}

@media(prefers-reduced-motion:reduce) {
	html {
		scroll-behavior:auto
	}
	*,*:before,*:after {
		animation:none!important;
		transition:none!important
	}
}

/* The supplied hero contains the horizontal RADISOL 7 lockup. Keep its original artwork. */
.logo {
	height:60px;
	width:250px;
	background:url('../radisol7/hero-1.png') -76px -30px/1195px auto no-repeat;
	overflow:hidden
}

.logo img {
	opacity:0
}

@media(max-width:1200px) and (min-width:981px) {
	.logo {
		width:195px;
		height:50px;
		background-size:950px auto;
		background-position:-60px -23px
	}
}

@media(max-width:700px) {
	.logo {
		width:170px;
		height:46px;
		background-size:820px auto;
		background-position:-52px -19px
	}
}

.contact-details {
	margin-top:35px;
	border-top:1px solid var(--line)
}

.contact-details>div {
	padding:18px 0;
	border-bottom:1px solid var(--line)
}

.contact-details span {
	display:block;
	font-size:11px;
	letter-spacing:.1em;
	text-transform:uppercase;
	color:var(--muted);
	margin-bottom:5px
}

.contact-details a {
	font-size:20px;
	font-weight:700;
	color:var(--blue);
	overflow-wrap:anywhere
}

.contact-details p {
	margin:0
}

@media(min-width:701px) and (max-width:980px) {
	.offerings-grid {
		grid-template-columns:repeat(2,minmax(0,1fr))
	}
	.product-track .content-card {
		flex-basis:calc((100% - 22px)/2)
	}
}

.news-grid {
	grid-template-columns:repeat(3,minmax(0,1fr));
	gap:24px
}

.news .card-image {
	height:210px
}

.news .card-copy h3 {
	font-size:24px;
	line-height:1.25
}

.news-date {
	display:block;
	color:#087e99;
	font-size:12px;
	font-weight:700;
	letter-spacing:.04em;
	margin-bottom:14px
}

.news-article {
	padding-top:20px;
	padding-bottom:70px;
	max-width:970px
}

.news-article header {
	max-width:820px;
	margin-inline:auto
}

.news-article h1 {
	font-size:clamp(30px,3.5vw,48px)
}

.news-header>picture>img {
	width:100%;
	aspect-ratio:3/1;
	object-fit:cover;
	border-radius:14px;
	margin:35px 0
}

.news-article>.prose,.news-article>.text-link {
	max-width:800px;
	margin-inline:auto
}

.news-article>.text-link {
	display:flex;
	margin-top:35px
}

.news-article .prose {
	font-size:18px
}

.news-article .prose h2 {
	font-size:28px;
	margin-top:36px
}

@media(max-width:980px) {
	.news-grid {
		gap:16px
	}
	.news .card-copy h3 {
		font-size:21px
	}
	.news .card-image {
		height:170px
	}
}

@media(max-width:700px) {
	.news-grid {
		grid-template-columns:1fr
	}
	.news .card-image {
		height:210px
	}
	.news .card-copy h3 {
		font-size:24px
	}
	.news-header>picture>img {
		aspect-ratio:16/9;
		object-position:right
	}
	.news-article .prose {
		font-size:16px
	}
}


.page-gallery { margin-top:36px;margin-bottom:36px; }
.gallery-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr)); gap:16px; }
.gallery-photo { display:block; overflow:hidden; border-radius:12px; border:1px solid var(--line); background:var(--ice); }
.gallery-photo img { display:block; width:100%; height:180px; object-fit:cover; transition:transform .2s; }
.gallery-photo:hover img { transform:scale(1.04); }
.gallery-photo:focus-visible { outline:3px solid var(--blue); outline-offset:3px; }
.gallery-lightbox { border:0; border-radius:12px; padding:48px 56px 24px; max-width:95vw; max-height:95vh; background:#fff; color:#083664; }
.gallery-lightbox::backdrop { background:rgba(0,15,30,.85); }
.gallery-lightbox figure { margin:0; text-align:center; }
.gallery-lightbox figure img { display:block; max-width:calc(95vw - 112px); max-height:calc(95vh - 140px); width:auto; height:auto; margin:auto; object-fit:contain; }
.gallery-lightbox figcaption { padding-top:14px; }
.gallery-lightbox button { position:absolute; border:0; border-radius:50%; width:38px; height:38px; background:#eef7fd; color:#083664; font-size:26px; cursor:pointer; }
.gallery-close { top:6px; right:8px; }
.gallery-prev { top:50%; left:8px; }
.gallery-next { top:50%; right:8px; }
@media(max-width:600px) {
    .gallery-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
    .gallery-photo img { height:140px; }
    .gallery-lightbox { padding:48px 42px 20px; }
    .gallery-lightbox figure img { max-width:calc(95vw - 84px); }
    .gallery-lightbox button { width:32px; height:32px; font-size:22px; }
    .gallery-prev { left:4px; }
    .gallery-next { right:4px; }
}
/* Small images keep the configured proportions at every screen size. */
.content-card .card-image { height:auto; aspect-ratio:1 / 1; }
.content-card.solutions .card-image { aspect-ratio:3 / 2; }
.content-card.news .card-image { aspect-ratio:16 / 9; }
.content-card .card-image img { object-position:center; }
.page-gallery .gallery-photo img { height:auto; aspect-ratio:1 / 1; }
.page-gallery[data-module="solutions"] .gallery-photo img { aspect-ratio:3 / 2; }
.page-gallery[data-module="news"] .gallery-photo img { aspect-ratio:16 / 9; }
/* Shared, consistently aligned carousel controls. */
.hero-controls .slider-control,
.carousel-buttons .slider-control {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex:0 0 44px;
    width:44px;
    height:44px;
    padding:0;
    border:1px solid #c9dfe9;
    border-radius:12px;
    background:#fff;
    color:#083664;
    box-shadow:0 2px 6px #0836640a;
    cursor:pointer;
    transition:background .18s,border-color .18s,box-shadow .18s;
    -webkit-tap-highlight-color:transparent;
}
.slider-control svg { display:block; width:20px; height:20px; flex:none; }
.hero-controls .slider-control:hover,
.carousel-buttons .slider-control:hover { background:#eaf7fa; border-color:#80cbd9; }
.hero-controls .slider-control:focus-visible,
.carousel-buttons .slider-control:focus-visible { outline:3px solid #13a5bd; outline-offset:3px; }
.hero-controls .slider-pause,
.carousel-buttons .slider-pause { background:#087e99; border-color:#087e99; color:#fff; }
.hero-controls .slider-pause:hover,
.carousel-buttons .slider-pause:hover { background:#06667d; border-color:#06667d; }
.slider-control .icon-play { display:none; }
.slider-control.is-paused .icon-pause { display:none; }
.slider-control.is-paused .icon-play { display:block; }
.hero-dots { align-items:center; gap:2px; padding:0 2px; }
.hero-controls .hero-dots button {
    display:flex;
    align-items:center;
    justify-content:center;
    width:24px;
    height:44px;
    padding:0;
    border:0;
    border-radius:8px;
    background:transparent;
    cursor:pointer;
}
.hero-dots button::after { content:''; width:7px; height:7px; border-radius:8px; background:#b5cedd; transition:width .18s,background .18s; }
.hero-dots button[aria-pressed=true]::after { width:18px; background:#087e99; }
.hero-dots button:focus-visible { outline:2px solid #13a5bd; outline-offset:1px; }
@media(min-width:701px) and (max-width:980px) { .hero-controls { transform:none; } }
@media(max-width:700px) {
    .hero-controls { gap:6px; padding:10px; }
    .hero-controls .hero-dots button { width:22px; }
    .section-actions { flex-wrap:wrap; gap:16px; }
    .carousel-buttons { flex-shrink:0; }
}
/* Optional slideshow content and click behavior are supplied by the CMS. */
.hero-slide { position:relative; }
.hero-slide picture { display:block; }
.hero-copy {
    position:absolute;
    inset:0;
    z-index:1;
    display:flex;
    align-items:center;
    padding-block:26px;
    pointer-events:none;
}
.slideshow_texts { width:48%; max-width:600px; }
.slideshow_link { margin-top:22px; pointer-events:auto; }
.slideshow_link:focus-visible { outline:3px solid var(--blue); outline-offset:4px; }
@media(max-width:700px) {
    .hero-copy { position:relative; inset:auto; padding-block:24px; background:#fff; }
    .slideshow_texts { width:100%; max-width:none; }
    .slideshow_link { margin-top:18px; }
}
.slideshow-wrapper .hero-mobile { display:none; }
@media(max-width:700px) {
    .slideshow-wrapper.has-mobile-slideshow .hero-desktop { display:none; }
    .slideshow-wrapper.has-mobile-slideshow .hero-mobile { display:grid; }
    .slideshow-wrapper .hero-desktop { display:none; }
}

.record-header-image>picture { display:block; }
.record-header-image>picture>img { display:block; width:100%; height:auto; }
.record-header-image.mobile-header-only { display:none; }
@media(max-width:700px) {
    .record-header-image.desktop-header-only { display:none; }
    .record-header-image.mobile-header-only { display:block; }
}
.slideshow_title { margin:0; color:var(--navy); font-size:clamp(25px,3.2vw,52px); line-height:1.12; letter-spacing:-.035em; }
.slideshow_description { margin:18px 0 0; color:var(--ink); font-size:clamp(15px,1.35vw,20px); line-height:1.5; }
@media(max-width:700px) {
    .slideshow_title { font-size:28px; }
    .slideshow_description { margin-top:12px; font-size:16px; }
}
