/* ==========================================================================
   OTSA Observatory — front-end styles
   Palette: brand guide (blue #0D4D7B, blue #297ABA, green #44965A,
   teal #66AF96, ivory #F5F2EA, ink #324149). Typeface inherited (Montserrat).
   ========================================================================== */

.otsa {
	--otsa-navy: #0D4D7B;
	--otsa-navy-deep: #08304e;
	--otsa-blue: #297ABA;
	--otsa-green: #44965A;
	--otsa-green-dark: #367a49;
	--otsa-teal: #66AF96;
	--otsa-ivory: #F5F2EA;
	--otsa-ivory-dark: #ebe6d9;
	--otsa-ink: #324149;
	--otsa-muted: #5f6d74;
	--otsa-line: #ddd6c6;
	--otsa-white: #ffffff;
	--otsa-mist: #EEF1EE;
	--otsa-wave-h: 90px;
	--otsa-measure: 760px;

	--otsa-radius-sm: 10px;
	--otsa-radius: 18px;
	--otsa-radius-lg: 28px;
	--otsa-shadow: 0 1px 2px rgba(13, 77, 123, 0.06), 0 12px 32px rgba(13, 77, 123, 0.08);
	--otsa-shadow-lg: 0 2px 4px rgba(13, 77, 123, 0.06), 0 28px 60px rgba(13, 77, 123, 0.16);
	--otsa-ease: cubic-bezier(0.22, 1, 0.36, 1);
	--otsa-gutter: clamp(20px, 4vw, 40px);
	--otsa-space: clamp(72px, 9vw, 128px);

	--otsa-contours: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='640' height='640' viewBox='0 0 640 640' fill='none' stroke='%23ffffff' stroke-width='1'%3E%3Cpath d='M-40 120c90-50 170-40 250 10s170 70 260 20 170-50 210-20'/%3E%3Cpath d='M-40 170c90-45 170-35 250 15s170 65 260 15 170-45 210-15'/%3E%3Cpath d='M-40 220c95-40 175-30 255 20s165 60 255 10 170-40 210-10'/%3E%3Cpath d='M-40 330c80 40 160 60 240 20s160-90 250-50 150 70 230 40'/%3E%3Cpath d='M-40 380c80 35 160 55 240 15s160-80 250-45 150 65 230 35'/%3E%3Cpath d='M-40 430c80 30 160 50 240 10s160-70 250-40 150 60 230 30'/%3E%3Cpath d='M-40 540c100-30 180-10 260 30s170 40 250 0 140-40 210-20'/%3E%3Cpath d='M-40 590c100-25 180-5 260 30s170 35 250-5 140-35 210-15'/%3E%3C/svg%3E");

	color: var(--otsa-ink);
	font-family: inherit;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
}

.otsa *,
.otsa *::before,
.otsa *::after {
	box-sizing: border-box;
}

.otsa img {
	display: block;
	max-width: 100%;
	height: auto;
}

.otsa a {
	text-decoration: none;
}

.otsa :focus-visible {
	outline: 3px solid var(--otsa-blue);
	outline-offset: 3px;
}

/* Pages built with the plugin get the ivory background behind the theme container. */
body:has(.otsa-page) #main-container,
body:has(.otsa-page) .site-main {
	background-color: #F5F2EA;
}

/* ---------- Layout ---------- */

.otsa-container {
	width: 100%;
	max-width: 1240px;
	margin-inline: auto;
	padding-inline: var(--otsa-gutter);
}

/* ---------- Typography ---------- */

/* ---------- Buttons, tags, meta ---------- */

.otsa-actions {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
}

/* Whole card clickable through its main link. */
.otsa-stretched::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 2;
	border-radius: inherit;
}

.otsa-stretched:focus-visible {
	outline: none;
}

.otsa-stretched:focus-visible::after {
	outline: 3px solid var(--otsa-blue);
	outline-offset: 4px;
}

.otsa-pulse {
	position: relative;
	flex: none;
	width: 8px;
	height: 8px;
	background: var(--otsa-teal);
	border-radius: 50%;
}

.otsa-pulse::after {
	content: "";
	position: absolute;
	inset: 0;
	background: inherit;
	border-radius: inherit;
	animation: otsa-pulse 2.4s ease-out infinite;
}

@keyframes otsa-pulse {
	0% { transform: scale(1); opacity: 0.7; }
	100% { transform: scale(3.2); opacity: 0; }
}

.otsa-empty {
	margin: 0;
	padding: 56px 24px;
	color: var(--otsa-muted);
	font-size: 1.05rem;
	text-align: center;
	background: var(--otsa-white);
	border: 1px dashed var(--otsa-line);
	border-radius: var(--otsa-radius);
}

/* ---------- News article content (written in the editor) ---------- */

.otsa-article__content {
	max-width: var(--otsa-measure);
	margin-inline: auto;
	color: var(--otsa-ink);
	font-size: 1rem;
	line-height: 1.85;
}

.otsa-article__content > * {
	margin-block: 0 1.4em;
}

/* Lead: the first paragraph reads as an introduction. */
.otsa-article__content > p:first-child,
.otsa-article__content > .has-large-font-size {
	padding-left: 24px;
	color: var(--otsa-navy);
	font-size: clamp(1.05rem, 1.35vw, 1.18rem) !important;
	font-weight: 500;
	line-height: 1.65;
	border-left: 4px solid var(--otsa-green);
}

.otsa-article__content h2,
.otsa-article__content h3 {
	margin-top: 2.2em;
	color: var(--otsa-navy);
	font-weight: 600;
	letter-spacing: normal;
	line-height: 1.25;
}

.otsa-article__content h2 {
	position: relative;
	padding-top: 22px;
	font-size: clamp(1.35rem, 2vw, 1.6rem);
}

.otsa-article__content h2::before {
	content: "";
	position: absolute;
	top: 0;
	left: 0;
	width: 48px;
	height: 3px;
	background: linear-gradient(90deg, var(--otsa-green), var(--otsa-teal));
	border-radius: 2px;
}

.otsa-article__content h3 {
	font-size: 1.15rem;
}

.otsa-article__content a {
	color: var(--otsa-blue);
	text-decoration: underline;
	text-decoration-thickness: 1px;
	text-underline-offset: 3px;
}

.otsa-article__content strong {
	color: var(--otsa-navy);
	font-weight: 600;
}

.otsa-article__content ul:not(.blocks-gallery-grid),
.otsa-article__content ol {
	padding-left: 0;
	list-style: none;
}

.otsa-article__content ul:not(.blocks-gallery-grid) > li,
.otsa-article__content ol > li {
	position: relative;
	margin-bottom: 0.7em;
	padding-left: 30px;
}

.otsa-article__content ul:not(.blocks-gallery-grid) > li::before {
	content: "";
	position: absolute;
	top: 0.72em;
	left: 4px;
	width: 10px;
	height: 10px;
	background: var(--otsa-teal);
	border-radius: 3px;
	transform: rotate(45deg);
}

.otsa-article__content ol {
	counter-reset: otsa-list;
}

.otsa-article__content ol > li::before {
	content: counter(otsa-list);
	counter-increment: otsa-list;
	position: absolute;
	top: 0.25em;
	left: 0;
	display: grid;
	place-items: center;
	width: 22px;
	height: 22px;
	color: var(--otsa-white);
	font-size: 0.75rem;
	font-weight: 700;
	line-height: 1;
	background: var(--otsa-navy);
	border-radius: 50%;
}

/* Images, galleries and columns. */
.otsa-article__content .wp-block-image img,
.otsa-article__content .wp-block-gallery img,
.otsa-article__content .wp-block-media-text img {
	border-radius: var(--otsa-radius);
}

.otsa-article__content .wp-block-image figcaption,
.otsa-article__content .wp-block-gallery figcaption {
	margin-top: 10px;
	color: var(--otsa-muted);
	font-size: 0.85rem;
	text-align: center;
}

.otsa-article__content .wp-block-columns {
	display: block;
	margin-block: 1.4em;
	padding: 0;
	background: none;
}

.otsa-article__content .wp-block-column {
	width: 100% !important;
	flex-basis: auto !important;
	margin: 0 0 1.2em;
}

.otsa-article__content .wp-block-column > *:last-child {
	margin-bottom: 0;
}

.otsa-article__content .wp-block-column .wp-block-image {
	margin: 0;
}

.otsa-article__content .wp-block-column .wp-block-image img {
	width: 100%;
	box-shadow: var(--otsa-shadow-lg);
}

.otsa-article__content blockquote,
.otsa-article__content .wp-block-quote,
.otsa-article__content .wp-block-pullquote {
	position: relative;
	margin: 2.2em 0;
	padding: 32px 32px 32px 40px;
	color: var(--otsa-navy);
	font-size: 1.1rem;
	font-weight: 500;
	line-height: 1.6;
	text-align: left;
	background: var(--otsa-ivory);
	border: 0;
	border-left: 4px solid var(--otsa-green);
	border-radius: 0 var(--otsa-radius) var(--otsa-radius) 0;
}

.otsa-article__content blockquote p {
	margin: 0 0 0.6em;
}

.otsa-article__content blockquote cite,
.otsa-article__content .wp-block-quote cite {
	display: block;
	color: var(--otsa-green-dark);
	font-size: 0.85rem;
	font-style: normal;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.otsa-article__content hr,
.otsa-article__content .wp-block-separator {
	width: 80px;
	margin: 2.5em auto;
	border: 0;
	border-top: 2px solid var(--otsa-line);
}

/* ==========================================================================
   Home page
   Sections joined by a gentle wave (the next section, photo included, is cut by
   the curve and slides over the previous one): hero → about, determinants →
   purpose, publications → news. The other joins are straight.
   ========================================================================== */

.otsa-home {
	overflow: hidden;
	background: var(--otsa-mist);
}

.otsa-home h1,
.otsa-home h2,
.otsa-home h3 {
	font-family: inherit;
}

/* ---------- Wave joins ---------- */

.otsa-wave {
	position: relative;
	z-index: 1;
}

.otsa-wave-prev + .otsa-wave {
	--otsa-wave-offset: var(--otsa-wave-h);
	margin-top: calc(var(--otsa-wave-h) * -1);
	-webkit-mask:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0 40C288 60 605 64 821 50S1195 24 1440 35V90H0z'/%3E%3C/svg%3E") top / 100% var(--otsa-wave-h) no-repeat,
		linear-gradient(#000, #000) 0 calc(var(--otsa-wave-h) - 1px) / 100% calc(100% - var(--otsa-wave-h) + 1px) no-repeat;
	mask:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 90' preserveAspectRatio='none'%3E%3Cpath d='M0 40C288 60 605 64 821 50S1195 24 1440 35V90H0z'/%3E%3C/svg%3E") top / 100% var(--otsa-wave-h) no-repeat,
		linear-gradient(#000, #000) 0 calc(var(--otsa-wave-h) - 1px) / 100% calc(100% - var(--otsa-wave-h) + 1px) no-repeat;
}

/* Faint reflection right behind the wave. */
.otsa-band {
	position: absolute;
	left: 0;
	bottom: 0;
	display: block;
	width: 100%;
	height: var(--otsa-wave-h);
	pointer-events: none;
}

.otsa section:not(:has(+ .otsa-wave)) > .otsa-band:not(.otsa-band--keep) {
	display: none;
}

/* ---------- Shared pieces ---------- */

.otsa-kicker {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 14px;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	line-height: 1.4;
	text-transform: uppercase;
}

.otsa-kicker__line {
	flex: 0 0 28px;
	height: 2px;
	background: currentColor;
	transform-origin: left;
}

.otsa-kicker--green { color: var(--otsa-green); }
.otsa-kicker--blue { color: var(--otsa-blue); }
.otsa-kicker--light { color: var(--otsa-ivory); }

.otsa-htitle {
	margin: 0;
	color: var(--otsa-navy);
	font-size: clamp(1.9rem, 3.2vw, 2.5rem);
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.15;
}

.otsa-htitle--lg {
	font-size: clamp(2rem, 3.4vw, 2.65rem);
}

.otsa-accent {
	color: var(--otsa-green);
}

.otsa-hprose {
	margin-top: 20px;
	font-size: 1rem;
	line-height: 1.8;
}

.otsa-hprose p {
	margin: 0 0 14px;
}

.otsa-hprose p:last-child {
	margin-bottom: 0;
}

.otsa-hprose strong {
	color: var(--otsa-navy);
}

.otsa-hprose a {
	color: var(--otsa-navy);
	text-decoration: underline;
	text-decoration-color: var(--otsa-green);
	text-underline-offset: 3px;
}

.otsa-hhead {
	display: flex;
	flex-wrap: wrap;
	align-items: flex-end;
	justify-content: space-between;
	gap: 16px 32px;
	margin-bottom: 26px;
}

.otsa-hpubs__carousel {
	position: relative;
}

/* Arrows below the cards; on wide screens they move to both sides. */
.otsa-carousel-nav {
	display: flex;
	justify-content: center;
	gap: 12px;
	margin-top: 6px;
}

@media (min-width: 1400px) {
	.otsa-carousel-nav {
		position: absolute;
		top: 50%;
		left: -82px;
		right: -82px;
		justify-content: space-between;
		margin: 0;
		transform: translateY(-50%);
		pointer-events: none;
	}

	.otsa-carousel-nav__btn {
		pointer-events: auto;
	}
}

.otsa-carousel-nav[hidden] {
	display: none;
}

.otsa-carousel-nav__btn {
	display: grid;
	place-items: center;
	width: 50px;
	height: 50px;
	padding: 0;
	border: 2px solid var(--otsa-navy);
	border-radius: 50%;
	background: #fff;
	color: var(--otsa-navy);
	box-shadow: 0 8px 20px rgba(13, 77, 123, 0.12);
	cursor: pointer;
	transition: background-color 0.3s, color 0.3s, opacity 0.3s, transform 0.3s var(--otsa-ease);
}

.otsa-carousel-nav__btn:hover:not(:disabled) {
	background: var(--otsa-navy);
	color: #fff;
	transform: translateY(-2px);
}

.otsa-carousel-nav__btn:disabled {
	opacity: 0.3;
	cursor: default;
}

.otsa-carousel-nav__btn--prev .otsa-icon {
	transform: rotate(180deg);
}

.otsa-hhead__hint {
	max-width: 340px;
	margin: 0;
	color: var(--otsa-muted);
	font-size: 0.95rem;
}

/* Buttons */
.otsa-hbtn {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	min-height: 50px;
	padding: 0 26px;
	border: 2px solid transparent;
	border-radius: 999px;
	font-size: 1rem;
	font-weight: 600;
	line-height: 1.2;
	text-decoration: none;
	transition: transform 0.35s var(--otsa-ease), background-color 0.3s, color 0.3s, border-color 0.3s, box-shadow 0.3s;
}

.otsa-hbtn .otsa-icon {
	transition: transform 0.3s var(--otsa-ease);
}

.otsa-hbtn:hover,
.otsa-hbtn:focus-visible {
	transform: translateY(-3px);
	box-shadow: 0 12px 26px rgba(13, 77, 123, 0.28);
}

.otsa-hbtn:hover .otsa-icon {
	transform: translateX(4px);
}

.otsa-hbtn--green { background: var(--otsa-green); color: #fff; }
.otsa-hbtn--green:hover { background: var(--otsa-green-dark); color: #fff; }
.otsa-hbtn--blue { background: var(--otsa-navy); color: #fff; }
.otsa-hbtn--blue:hover { background: #0a3d62; color: #fff; }
.otsa-hbtn--ghost { background: var(--otsa-navy); color: #fff; }
.otsa-hbtn--ghost:hover { background: #0a3d62; color: #fff; }
.otsa-hbtn--white { min-height: 58px; padding: 0 32px; background: #fff; color: var(--otsa-navy); font-size: 1.05rem; font-weight: 700; }
.otsa-hbtn--white:hover { color: var(--otsa-navy); }

.otsa-hlink {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 26px;
	padding-bottom: 4px;
	border-bottom: 2px solid var(--otsa-green);
	color: var(--otsa-navy);
	font-weight: 700;
	text-decoration: none;
	transition: gap 0.3s var(--otsa-ease), color 0.3s;
}

.otsa-hlink:hover {
	gap: 16px;
	color: var(--otsa-green);
}

/* Half text / half full-height photo */
.otsa-split {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	align-items: stretch;
}

.otsa-split--text {
	grid-template-columns: minmax(0, 1fr);
}

.otsa-split__text {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: calc(var(--otsa-wave-offset, 0px) + 64px) 64px 80px var(--otsa-gutter);
}

.otsa-split--reverse .otsa-split__text {
	justify-content: flex-start;
	padding-right: var(--otsa-gutter);
	padding-left: 64px;
}

.otsa-split--text .otsa-split__text {
	justify-content: center;
	padding-inline: var(--otsa-gutter);
}

.otsa-split__content {
	position: relative;
	width: 100%;
	max-width: 560px;
}

.otsa-split__media {
	position: relative;
	min-height: 640px;
	margin: 0;
	overflow: hidden;
	background: var(--otsa-teal);
}

.otsa-split__media .otsa-par {
	position: absolute;
	inset: 0;
}

.otsa .otsa-split__media img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
}

/* ---------- Hero ---------- */

.otsa-hero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 700px;
	padding: 190px 0 160px;
	text-align: center;
	overflow: hidden;
	color: #fff;
	background: linear-gradient(160deg, #6f9fb8 0%, #2f6b56 45%, #12402e 100%);
}

.otsa-hero__media,
.otsa-hero__slide,
.otsa-hero__veil,
.otsa-hero__river {
	position: absolute;
	inset: 0;
}

.otsa-hero__slide {
	opacity: 0;
	transition: opacity 1.4s ease;
}

.otsa-hero__slide.is-active {
	opacity: 1;
}

.otsa .otsa-hero__slide img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transform: scale(1.02);
}

.otsa .otsa-hero__slide.is-active img {
	animation: otsa-drift 18s ease-in-out infinite alternate;
}

.otsa-hero__veil {
	background:
		radial-gradient(ellipse 55% 45% at 50% 55%, rgba(8, 48, 78, 0.3) 0%, rgba(8, 48, 78, 0) 100%),
		linear-gradient(180deg, rgba(8, 48, 78, 0.55) 0%, rgba(8, 48, 78, 0.2) 13%, rgba(8, 48, 78, 0) 26%, rgba(8, 48, 78, 0) 70%, rgba(8, 48, 78, 0.3) 100%);
}

.otsa-hero__river {
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.otsa-hero__river path {
	fill: none;
	stroke: var(--otsa-teal);
	stroke-width: 2;
	stroke-linecap: round;
	opacity: 0.6;
	stroke-dasharray: 1800;
	animation: otsa-draw 6s ease-out both;
}

.otsa-hero__inner {
	position: relative;
	z-index: 1;
	max-width: 1360px;
}

.otsa-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 22px;
	padding: 9px 18px 9px 14px;
	border-radius: 999px;
	background: var(--otsa-teal);
	box-shadow: 0 6px 18px rgba(8, 48, 78, 0.18);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.otsa-hero__eyebrow .otsa-pulse {
	background: #fff;
}

.otsa-hero__title {
	max-width: none;
	margin: 0 auto 20px;
	text-shadow: 0 2px 28px rgba(8, 48, 78, 0.55);
	color: #fff;
	font-size: clamp(calc(2.4rem + 2px), calc(4.4vw + 2px), calc(4rem + 2px));
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.04;
}

.otsa-hero__word {
	display: block;
	color: var(--otsa-navy);
	font-size: 1.3em;
	text-shadow: none;
}

.otsa-hero__text {
	max-width: 880px;
	text-wrap: balance;
	margin: 0 auto 30px;
	text-shadow: 0 1px 14px rgba(8, 48, 78, 0.7);
	color: rgba(255, 255, 255, 0.88);
	font-size: 1.12rem;
	line-height: 1.7;
}

.otsa-hero .otsa-actions {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 12px;
}

.otsa-hero__dots {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 108px;
	z-index: 1;
	display: flex;
	justify-content: center;
	gap: 10px;
	margin-inline: auto;
}

.otsa-hero__dot {
	width: 46px;
	height: 18px;
	padding: 0;
	border: 0;
	background: none;
	cursor: pointer;
}

.otsa-hero__dot span {
	position: relative;
	display: block;
	height: 3px;
	overflow: hidden;
	border-radius: 2px;
	background: rgba(255, 255, 255, 0.35);
}

.otsa-hero__dot span::after {
	content: "";
	position: absolute;
	inset: 0;
	background: #fff;
	transform: scaleX(0);
	transform-origin: left;
}

.otsa-hero__dot.is-active span::after {
	animation: otsa-grow var(--otsa-slide-duration, 7000ms) linear both;
}

/* ---------- About ---------- */

.otsa-about {
	color: rgba(255, 255, 255, 0.94);
	background: var(--otsa-green);
}

.otsa-about .otsa-accent {
	color: var(--otsa-navy);
}

.otsa-about .otsa-hlink {
	border-bottom-color: var(--otsa-ivory);
}

.otsa-about .otsa-split__media {
	background: #2f6b56;
}

/* ---------- Determinants ---------- */

.otsa-dets-section {
	position: relative;
	padding: 72px 0 150px;
	background: var(--otsa-ivory);
}

.otsa-dets {
	display: flex;
	gap: 14px;
	min-height: 300px;
}

.otsa-det {
	position: relative;
	display: flex;
	flex: 1 1 0%;
	flex-direction: column;
	justify-content: flex-start;
	gap: 22px;
	min-width: 0;
	padding: 28px 28px 34px;
	overflow: hidden;
	border-radius: 28px;
	color: #fff;
	background: var(--otsa-det-color);
	cursor: pointer;
	transition: flex-grow 0.7s var(--otsa-ease);
}

.otsa-det.is-active {
	flex-grow: 2.4;
}

.otsa-det__top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
}

.otsa-det__icon {
	display: grid;
	place-items: center;
	width: 60px;
	height: 60px;
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.16);
}

.otsa .otsa-det__icon img {
	width: 32px;
	height: 32px;
	object-fit: contain;
}

.otsa-det__num {
	color: transparent;
	font-size: 3.4rem;
	font-weight: 800;
	line-height: 1;
	-webkit-text-stroke: 1.5px rgba(255, 255, 255, 0.55);
	transition: transform 0.7s var(--otsa-ease);
}

.otsa-det:hover .otsa-det__num {
	transform: translateY(-6px) scale(1.06);
}

.otsa-det__title {
	margin: 0 0 10px;
	color: #fff;
	font-size: 1.5rem;
	font-weight: 700;
	line-height: 1.2;
}

.otsa-det__toggle {
	padding: 0;
	border: 0;
	background: none;
	color: inherit;
	font: inherit;
	text-align: left;
	cursor: pointer;
}

/* The whole card opens it. */
.otsa-det__toggle::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 1;
}

.otsa-det__body {
	position: relative;
	z-index: 2;
	max-width: 460px;
}

/* Closed cards keep a three-line preview of their text. */
.otsa-det:not(.is-active) .otsa-det__text {
	display: -webkit-box;
	overflow: hidden;
	opacity: 0.8;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}

.otsa-det:not(.is-active) .otsa-det__btn {
	display: none;
}

.otsa-det.is-active .otsa-det__body {
	animation: otsa-word 0.55s 0.1s both;
}

/* Progress line of the automatic tour. */
.otsa-det::before {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	z-index: 1;
	width: 100%;
	height: 4px;
	background: rgba(255, 255, 255, 0.55);
	transform: scaleX(0);
	transform-origin: left;
}

.otsa-dets.is-touring .otsa-det.is-active::before {
	animation: otsa-grow 6s linear both;
}

.otsa-det__text {
	margin: 0 0 18px;
	color: rgba(255, 255, 255, 0.9);
	font-size: 1rem;
	line-height: 1.7;
}

.otsa-det__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 18px;
	border-radius: 999px;
	background: #fff;
	color: var(--otsa-det-color);
	font-size: 0.88rem;
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.3s var(--otsa-ease);
}

.otsa-det__btn:hover {
	color: var(--otsa-det-color);
	transform: translateY(-2px);
}

.otsa-det__wave {
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 45%;
	fill: #fff;
	opacity: 0.14;
	pointer-events: none;
	transform-origin: 50% 100%;
	animation: otsa-sway 7s ease-in-out infinite;
}

/* ---------- Purpose ---------- */

.otsa-purpose {
	color: rgba(255, 255, 255, 0.94);
	background: var(--otsa-navy);
}

.otsa-purpose .otsa-accent {
	color: var(--otsa-teal);
}

/* Text on the colored sections */
.otsa-about .otsa-htitle,
.otsa-purpose .otsa-htitle,
.otsa-about .otsa-hprose strong,
.otsa-purpose .otsa-hprose strong,
.otsa-about .otsa-hprose a,
.otsa-purpose .otsa-hprose a,
.otsa .otsa-about .otsa-hlink,
.otsa .otsa-about .otsa-hlink:hover {
	color: #fff;
}

.otsa-about .otsa-hprose,
.otsa-purpose .otsa-hprose {
	font-size: 1rem;
	line-height: 1.85;
}

.otsa-purpose .otsa-split__media {
	min-height: 660px;
	background: #6d5d41;
}

.otsa-lines {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: #fff;
	stroke-width: 1.5;
	opacity: 0.12;
	pointer-events: none;
}

/* ---------- Partners ---------- */

.otsa-partners {
	padding: 64px 0 76px;
	background: #fff;
}

.otsa-partners .otsa-container {
	max-width: 1500px;
}

.otsa-partners__title {
	margin: 0 0 44px;
	color: var(--otsa-muted);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.16em;
	text-align: center;
	text-transform: uppercase;
}

.otsa-partners__list {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px 32px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.otsa-partners__list:has(> :nth-child(-n+3):last-child) {
	justify-content: center;
}

.otsa-partners__item {
	display: flex;
	flex: 1 1 0;
	min-width: 0;
	max-width: 300px;
	align-items: center;
	justify-content: center;
	transition: transform 0.35s var(--otsa-ease);
}

.otsa-partners__item a {
	display: flex;
	justify-content: center;
	max-width: 100%;
}

.otsa-partners__item:hover {
	transform: translateY(-4px);
}

.otsa .otsa-partners__item img {
	width: auto;
	height: auto;
	max-width: 100%;
	max-height: 120px;
	object-fit: contain;
}

/* ---------- Publications carousel ---------- */

.otsa-hpubs {
	position: relative;
	padding: 64px 0 150px;
	background: var(--otsa-mist);
}

.otsa-hpubs__track {
	display: flex;
	gap: 22px;
	margin: 0 -4px;
	padding: 12px 4px 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
}

.otsa-hpubs__track::-webkit-scrollbar {
	display: none;
}

.otsa-hpub {
	--otsa-hpub-accent: var(--otsa-blue);
	--otsa-hpub-panel: #dbe8f2;
	position: relative;
	display: flex;
	flex: 0 0 340px;
	flex-direction: column;
	overflow: hidden;
	border-radius: 24px;
	background: #fff;
	scroll-snap-align: start;
	transition: transform 0.5s var(--otsa-ease), box-shadow 0.5s;
}

.otsa-hpub--green {
	--otsa-hpub-accent: var(--otsa-green);
	--otsa-hpub-panel: #dcebe0;
}

.otsa-hpub:hover {
	transform: translateY(-8px);
	box-shadow: 0 28px 50px rgba(13, 77, 123, 0.18);
}

.otsa-hpub__panel {
	position: relative;
	height: 230px;
	overflow: hidden;
	background: var(--otsa-hpub-panel);
}

.otsa-hpub__doc {
	position: absolute;
	left: 50%;
	bottom: -20px;
	display: flex;
	flex-direction: column;
	gap: 6px;
	width: 150px;
	height: 205px;
	margin-left: -75px;
	padding: 14px;
	overflow: hidden;
	border-radius: 6px;
	background: #fff;
	box-shadow: 0 18px 36px rgba(0, 0, 0, 0.22);
	transition: transform 0.55s var(--otsa-ease);
}

.otsa-hpub:hover .otsa-hpub__doc {
	transform: translateY(-14px) rotate(-2.5deg);
}

.otsa .otsa-hpub__doc img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: top;
}

.otsa-hpub__band {
	height: 44px;
	border-radius: 3px;
	background: var(--otsa-hpub-accent);
}

.otsa-hpub__lines {
	display: grid;
	gap: 6px;
}

.otsa-hpub__lines span {
	height: 6px;
	background: #e4e4e4;
}

.otsa-hpub__lines span:nth-child(1) { width: 80%; }
.otsa-hpub__lines span:nth-child(2) { width: 92%; }
.otsa-hpub__lines span:nth-child(3) { width: 70%; }
.otsa-hpub__lines span:nth-child(4) { width: 86%; }

.otsa-hpub__ext {
	margin-top: auto;
	color: var(--otsa-hpub-accent);
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.1em;
}

.otsa-hpub__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	padding: 20px 22px 22px;
}

.otsa-hpub__meta {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 10px;
	margin: 0;
	color: var(--otsa-muted);
	font-size: 0.75rem;
	font-weight: 600;
}

.otsa-hpub__type {
	padding: 4px 10px;
	border-radius: 999px;
	background: var(--otsa-hpub-accent);
	color: #fff;
	font-size: 0.68rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.otsa-hpub__title {
	margin: 0;
	color: var(--otsa-navy);
	font-size: 1.06rem;
	font-weight: 700;
	line-height: 1.35;
}

.otsa-hpub__action {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	margin-top: auto;
	color: var(--otsa-green);
	font-size: 0.88rem;
	font-weight: 700;
}

/* ---------- News + CTA ---------- */

.otsa-hnews {
	padding: calc(var(--otsa-wave-offset, 0px) + 60px) 0 72px;
	background: var(--otsa-ivory);
}

.otsa-hnews__grid {
	display: grid;
	grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
	gap: 22px;
}

.otsa-hnews__grid--single {
	grid-template-columns: minmax(0, 1fr);
}

.otsa-hnews__side {
	display: grid;
	gap: 22px;
}

.otsa-hnew {
	position: relative;
	overflow: hidden;
	transition: transform 0.5s var(--otsa-ease), box-shadow 0.5s;
}

.otsa-hnew:hover {
	transform: translateY(-8px);
	box-shadow: 0 28px 50px rgba(13, 77, 123, 0.18);
}

.otsa-hnew__media {
	overflow: hidden;
	background: linear-gradient(150deg, #9cc1b0, var(--otsa-green));
}

.otsa-hnew--blue .otsa-hnew__media {
	background: linear-gradient(150deg, #7fb0d3, var(--otsa-blue));
}

.otsa .otsa-hnew__media img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform 1.2s var(--otsa-ease);
}

.otsa-hnew:hover .otsa-hnew__media img {
	transform: scale(1.06);
}

.otsa-hnew__title {
	margin: 0;
	font-weight: 700;
	line-height: 1.3;
}

.otsa .otsa-hnew__title a,
.otsa .otsa-hnew__title a:hover,
.otsa .otsa-hnew__title a:focus,
.otsa .otsa-hpub__title a,
.otsa .otsa-hpub__title a:hover,
.otsa .otsa-hpub__title a:focus {
	color: inherit;
}

.otsa-hnew__cat {
	display: inline-block;
	margin-bottom: 10px;
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.otsa-hnew__date {
	display: block;
	margin-top: 8px;
	font-size: 0.85rem;
}

/* Featured story: photo with the text over it. */
.otsa-hnew--featured {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 440px;
	border-radius: 28px;
	color: #fff;
}

.otsa-hnew--featured .otsa-hnew__media {
	position: absolute;
	inset: 0;
}

.otsa-hnew--featured .otsa-hnew__body {
	position: relative;
	padding: 90px 28px 28px;
	background: linear-gradient(0deg, rgba(8, 48, 78, 0.92) 0%, rgba(8, 48, 78, 0.55) 60%, rgba(8, 48, 78, 0) 100%);
}

.otsa-hnew--featured .otsa-hnew__cat {
	padding: 5px 12px;
	border-radius: 999px;
	background: var(--otsa-green);
}

.otsa-hnew--featured .otsa-hnew__title {
	color: #fff;
	font-size: clamp(1.4rem, 2.2vw, 1.75rem);
}

.otsa-hnew--featured .otsa-hnew__date {
	color: rgba(255, 255, 255, 0.85);
}

/* Side stories: small photo + text on white. */
.otsa-hnew--small {
	display: grid;
	grid-template-columns: 150px minmax(0, 1fr);
	border-radius: 22px;
	background: #fff;
}

.otsa-hnew--small .otsa-hnew__media {
	min-height: 150px;
}

.otsa-hnew--small .otsa-hnew__body {
	padding: 20px;
}

.otsa-hnew--small .otsa-hnew__cat {
	color: var(--otsa-green);
}

.otsa-hnew--small.otsa-hnew--blue .otsa-hnew__cat {
	color: var(--otsa-blue);
}

.otsa-hnew--small .otsa-hnew__title {
	color: var(--otsa-navy);
	font-size: 1rem;
}

.otsa-hnew--small .otsa-hnew__date {
	color: var(--otsa-muted);
}

/* Closing call to action */
.otsa-hcta {
	position: relative;
	margin-top: 64px;
	overflow: hidden;
	border-radius: 32px;
	color: #fff;
	background: var(--otsa-navy);
}

.otsa-hnews .otsa-hcta:first-child {
	margin-top: 0;
}

.otsa-hcta__shape {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.otsa-hcta__green {
	fill: var(--otsa-green);
}

.otsa-hcta__line {
	fill: none;
	stroke: #fff;
	stroke-width: 1.5;
	opacity: 0.12;
}

.otsa-hcta__inner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
	padding: 48px 56px;
}

.otsa-hcta__copy {
	max-width: 560px;
}

.otsa-hcta__title {
	margin: 0 0 10px;
	color: #fff;
	font-size: clamp(1.6rem, 2.6vw, 2.1rem);
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.2;
}

.otsa-hcta__text {
	margin: 0;
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.05rem;
}

.otsa-hcta .otsa-hbtn--white {
	flex-shrink: 0;
	margin-right: 40px;
}

/* ---------- Home animations ---------- */

@keyframes otsa-in {
	from { opacity: 0; transform: translateY(26px); }
	to { opacity: 1; transform: none; }
}

@keyframes otsa-word {
	from { opacity: 0; transform: translateY(18px); filter: blur(4px); }
	to { opacity: 1; transform: none; filter: none; }
}

/* Slow, continuous movement of the banner photos. */
@keyframes otsa-drift {
	from { transform: scale(1.02) translate3d(0, 0, 0); }
	to { transform: scale(1.12) translate3d(-1.5%, -1%, 0); }
}

@keyframes otsa-draw {
	from { stroke-dashoffset: 1800; }
	to { stroke-dashoffset: 0; }
}

@keyframes otsa-sway {
	0%, 100% { transform: rotate(-3deg); }
	50% { transform: rotate(3deg); }
}

@keyframes otsa-grow {
	from { transform: scaleX(0); }
	to { transform: scaleX(1); }
}

@keyframes otsa-rise {
	from { transform: translateY(60px); }
	to { transform: none; }
}

@keyframes otsa-par {
	from { transform: scale(1.18) translateY(-7%); }
	to { transform: scale(1.18) translateY(7%); }
}

.otsa-in {
	animation: otsa-in 0.9s var(--otsa-ease) both;
}


/* Scroll-driven (Chrome, Edge, Safari 26+). Without support everything stays visible and still. */
@supports (animation-timeline: view()) {
	.otsa-rv {
		animation: otsa-rise linear both;
		animation-timeline: view();
		animation-range: entry 0% entry 70%;
	}

	.otsa-par {
		animation: otsa-par linear both;
		animation-timeline: view();
		animation-range: cover;
	}

	.otsa-kicker__line {
		animation: otsa-grow linear both;
		animation-timeline: view();
		animation-range: entry 20% cover 40%;
	}
}

/* ---------- Home responsive ---------- */

@media (max-width: 900px) {
	.otsa {
		--otsa-wave-h: 60px;
	}

	.otsa-split {
		grid-template-columns: minmax(0, 1fr);
	}

	.otsa-split__media,
	.otsa-purpose .otsa-split__media {
		order: -1;
		min-height: 340px;
	}

	.otsa-split__text,
	.otsa-split--reverse .otsa-split__text {
		justify-content: flex-start;
		padding: 48px var(--otsa-gutter) 64px;
	}

	.otsa-split--text .otsa-split__text {
		padding-top: calc(var(--otsa-wave-offset, 0px) + 48px);
	}

	.otsa-hero {
		min-height: 0;
		padding: 110px 0 130px;
	}

	.otsa-hero__dots {
		bottom: 80px;
	}

	.otsa-hero__river {
		display: none;
	}

	.otsa-hero__veil {
		background: rgba(8, 48, 78, 0.32);
	}

	.otsa-dets-section,
	.otsa-hpubs {
		padding-bottom: 110px;
	}

	.otsa-dets {
		flex-direction: column;
		height: auto;
	}

	.otsa-det,
	.otsa-det.is-active {
		flex: none;
		gap: 28px;
		cursor: default;
	}

	.otsa-det:not(.is-active) .otsa-det__text {
		display: block;
		opacity: 1;
		-webkit-line-clamp: unset;
	}

	.otsa-det:not(.is-active) .otsa-det__btn {
		display: inline-flex;
	}

	.otsa-det__toggle {
		cursor: default;
	}

	.otsa-partners__list {
		flex-wrap: wrap;
		justify-content: center;
	}

	.otsa-partners__item {
		flex: 0 1 40%;
	}

	.otsa .otsa-partners__item img {
		max-height: 68px;
	}

	.otsa-hpub {
		flex-basis: 280px;
	}

	.otsa-hnews__grid {
		grid-template-columns: minmax(0, 1fr);
	}

	.otsa-hnew--featured {
		min-height: 380px;
	}

	.otsa-hcta__shape {
		display: none;
	}

	.otsa-hcta__inner {
		flex-direction: column;
		align-items: flex-start;
		padding: 40px 28px;
	}

	.otsa-hcta .otsa-hbtn--white {
		margin-right: 0;
	}
}

@media (max-width: 599px) {
	.otsa-hnew--small {
		grid-template-columns: 110px minmax(0, 1fr);
	}

	.otsa-hnew--small .otsa-hnew__media {
		min-height: 120px;
	}
}

/* ==========================================================================
   Theme integration
   Pages drawn by the plugin (body.otsa-layout) span the whole screen; the theme
   banner, author line, comments and side spacing are removed from them.
   ========================================================================== */

html:has(.otsa-bleed),
body:has(.otsa-bleed) {
	overflow-x: clip;
}

.otsa-bleed {
	position: relative;
	width: var(--otsa-vw, 100vw) !important;
	max-width: none !important;
	margin-left: calc(50% - var(--otsa-vw, 100vw) / 2) !important;
	margin-right: 0 !important;
}

body.otsa-layout [data-vertical-spacing] {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}

body.otsa-layout .e-con:has(.otsa-bleed),
body.otsa-layout .e-con-inner:has(.otsa-bleed),
body.otsa-layout .elementor-widget-wrap:has(.otsa-bleed),
body.otsa-layout .elementor-element:has(> .elementor-widget-container .otsa-bleed) {
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
	padding: 0 !important;
}

body.otsa-own-hero .hero-section,
body.otsa-own-hero .ct-breadcrumbs,
body.otsa-single .entry-meta,
body.otsa-single .post-navigation,
body.otsa-single .ct-related-posts-container,
body.otsa-single .ct-comments-container,
body.otsa-single #comments,
body.otsa-single .ct-share-box,
body.otsa-single .author-box {
	display: none !important;
}

body.otsa-single .entry-content > .otsa-bleed {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* ==========================================================================
   Inner pages
   ========================================================================== */

.otsa-page {
	background: var(--otsa-ivory);
}

/* ---------- Banner ---------- */

.otsa-phero {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	min-height: 680px;
	padding: 190px 0 190px;
	overflow: hidden;
	color: #fff;
	text-align: center;
	background: linear-gradient(150deg, var(--otsa-navy) 0%, #0a3d62 60%, #2f6b56 100%);
}

.otsa-phero--article {
	min-height: 0;
	padding: 180px 0 120px;
	background: linear-gradient(150deg, var(--otsa-green) 0%, #2f6b56 55%, var(--otsa-navy) 100%);
}

.otsa-phero--article:has(+ .otsa-article-body .otsa-article__image) {
	padding-bottom: 300px;
}

.otsa-phero--profile {
	min-height: 460px;
	padding: 190px 0 120px;
	text-align: left;
}

.otsa-phero__media,
.otsa-phero__veil,
.otsa-phero__river {
	position: absolute;
	inset: 0;
}

.otsa .otsa-phero__media img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	animation: otsa-drift 18s ease-in-out infinite alternate;
}

.otsa-phero.has-image .otsa-phero__veil {
	background:
		radial-gradient(ellipse 55% 50% at 50% 55%, rgba(8, 48, 78, 0.42) 0%, rgba(8, 48, 78, 0) 100%),
		linear-gradient(180deg, rgba(8, 48, 78, 0.62) 0%, rgba(8, 48, 78, 0.25) 14%, rgba(8, 48, 78, 0) 28%, rgba(8, 48, 78, 0) 62%, rgba(8, 48, 78, 0.35) 100%);
}

.otsa-phero__river {
	width: 100%;
	height: 100%;
	pointer-events: none;
}

.otsa-phero__river path {
	fill: none;
	stroke: var(--otsa-teal);
	stroke-width: 2;
	stroke-linecap: round;
	opacity: 0.65;
	stroke-dasharray: 1800;
	animation: otsa-draw 5s ease-out both;
}

.otsa-phero__river path.is-soft {
	opacity: 0.3;
}

.otsa-phero__inner {
	position: relative;
	z-index: 1;
}

.otsa-phero__label {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 20px;
	padding: 8px 16px 8px 12px;
	border-radius: 999px;
	background: var(--otsa-teal);
	color: #fff;
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	box-shadow: 0 6px 18px rgba(8, 48, 78, 0.18);
}

.otsa-phero__label .otsa-pulse {
	background: #fff;
}

.otsa-phero__title {
	max-width: 1000px;
	margin: 0 auto;
	text-wrap: balance;
	color: #fff;
	font-size: clamp(calc(2.6rem + 2px), calc(6vw + 2px), calc(5.2rem + 2px));
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.04;
	text-shadow: 0 2px 28px rgba(8, 48, 78, 0.5);
}

.otsa-phero--article .otsa-phero__title {
	font-size: clamp(calc(1.9rem + 2px), calc(3.4vw + 2px), calc(3rem + 2px));
	line-height: 1.14;
}

.otsa-phero--profile .otsa-phero__title {
	max-width: none;
	margin: 0;
	font-size: clamp(calc(2rem + 2px), calc(3.2vw + 2px), calc(2.9rem + 2px));
}

.otsa-phero__subtitle {
	max-width: 720px;
	margin: 18px auto 0;
	color: rgba(255, 255, 255, 0.94);
	font-size: clamp(1.05rem, 1.6vw, 1.25rem);
	font-weight: 500;
	line-height: 1.55;
	text-shadow: 0 1px 14px rgba(8, 48, 78, 0.6);
}

.otsa-phero__crumbs {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 10px;
	margin-top: 22px;
	color: rgba(255, 255, 255, 0.82);
	font-size: 0.82rem;
	font-weight: 600;
}

.otsa-phero__crumbs a {
	color: #fff;
}

.otsa-phero__crumbs a:hover {
	color: var(--otsa-teal);
}

.otsa-phero__crumbs span[aria-hidden] {
	opacity: 0.55;
}

.otsa-phero--profile .otsa-phero__crumbs {
	justify-content: flex-start;
}

.otsa-phero--profile .otsa-phero__inner {
	padding-left: calc(460px + 72px + var(--otsa-gutter));
}

.otsa-in--late {
	animation-delay: calc(var(--otsa-type-end, 300ms) + 150ms);
}

/* Typewriter (letters are wrapped by otsa.js; the text is visible without it) */
@keyframes otsa-type {
	from { opacity: 0; transform: translateY(0.12em); }
	to { opacity: 1; transform: none; }
}

/* Hidden until the letters are prepared, so the full title does not flash first. */
@keyframes otsa-show {
	to { visibility: visible; }
}

[data-otsa-type]:not(.is-typed) {
	visibility: hidden;
	animation: otsa-show 0s 1.5s forwards;
}

.otsa-tw-word {
	display: inline-block;
	white-space: nowrap;
}

.otsa-tw-ch {
	display: inline-block;
	animation: otsa-type 0.12s ease-out both;
}

/* ---------- Page body ---------- */

.otsa-pbody {
	position: relative;
	padding: calc(var(--otsa-wave-offset, 0px) + 56px) 0 96px;
	background: var(--otsa-ivory);
}

.otsa-pbody.otsa-wave-prev {
	padding-bottom: 110px;
}

/* Introduction band: full-width color strip right below the banner. */
.otsa-intro {
	position: relative;
	padding: calc(var(--otsa-wave-offset, 0px) + 44px) 0 60px;
	overflow: hidden;
	color: #fff;
	background: var(--otsa-green);
}

.otsa-intro--blue {
	background: var(--otsa-navy);
}

.otsa-intro__lines {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: #fff;
	stroke-width: 1.5;
	opacity: 0.14;
	pointer-events: none;
}

.otsa-intro__text {
	position: relative;
	max-width: 1000px;
	font-size: clamp(1.05rem, 1.35vw, 1.18rem);
	font-weight: 500;
	line-height: 1.7;
	text-align: center;
}

.otsa-intro__text p {
	margin: 0 0 10px;
}

.otsa-intro__text p:last-child {
	margin-bottom: 0;
}

.otsa-toolbar {
	margin-top: 72px;
}

.otsa-page .otsa-hcta {
	margin-top: 72px;
}

/* ---------- Team ---------- */

.otsa-team {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 28px 24px;
}

.otsa-member {
	position: relative;
}

.otsa-member__photo {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 24px;
	background: #cfd8d3;
}

.otsa .otsa-member__photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center 20%;
	transition: transform 1.1s var(--otsa-ease);
}

.otsa-member:hover .otsa-member__photo img {
	transform: scale(1.06);
}

.otsa-member__initials {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	color: #fff;
	font-size: clamp(2.4rem, 4vw, 3.6rem);
	font-weight: 700;
	letter-spacing: 0.06em;
	background: radial-gradient(circle at 75% 20%, var(--otsa-teal), var(--otsa-blue) 45%, var(--otsa-navy));
}

.otsa-member__shade {
	position: absolute;
	inset: auto 0 0;
	height: 58%;
	background: linear-gradient(0deg, rgba(8, 48, 78, 0.92) 0%, rgba(8, 48, 78, 0.4) 55%, rgba(8, 48, 78, 0) 100%);
	pointer-events: none;
}

.otsa-member__info {
	position: absolute;
	left: 20px;
	right: 20px;
	bottom: 20px;
	color: #fff;
}

.otsa-member__name {
	margin: 0;
	color: #fff;
	font-size: 1.15rem;
	font-weight: 700;
	line-height: 1.25;
}

.otsa .otsa-member__name a,
.otsa .otsa-member__name a:hover {
	color: #fff;
}

.otsa-member__role {
	margin: 4px 0 0;
	color: rgba(255, 255, 255, 0.86);
	font-size: 0.82rem;
	font-weight: 500;
}

.otsa-member__go {
	display: flex;
	align-items: center;
	gap: 8px;
	width: max-content;
	max-height: 0;
	margin-top: 0;
	padding: 0 14px;
	overflow: hidden;
	border-radius: 999px;
	background: #fff;
	color: var(--otsa-navy);
	font-size: 0.8rem;
	font-weight: 700;
	opacity: 0;
	transition: max-height 0.5s var(--otsa-ease), margin 0.5s var(--otsa-ease), padding 0.5s var(--otsa-ease), opacity 0.4s;
}

.otsa-member:hover .otsa-member__go,
.otsa-member:focus-within .otsa-member__go {
	max-height: 40px;
	margin-top: 12px;
	padding: 8px 14px;
	opacity: 1;
}

.otsa-member__cover {
	position: absolute;
	inset: 0;
	z-index: 3;
	border-radius: inherit;
}

.otsa .otsa-member__name a:focus-visible {
	outline: 3px solid #fff;
	outline-offset: 3px;
}

.otsa-member__bar {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	height: 5px;
	background: var(--otsa-green);
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.6s var(--otsa-ease);
}

.otsa-member--blue .otsa-member__bar {
	background: var(--otsa-blue);
}

.otsa-member:hover .otsa-member__bar {
	transform: scaleX(1);
}

/* ---------- Member page ---------- */

.otsa-profile {
	position: relative;
	z-index: 2;
	padding: 0 0 80px;
	background: var(--otsa-ivory);
}

.otsa-profile__grid {
	display: grid;
	grid-template-columns: 460px minmax(0, 1fr);
	gap: 72px;
}

.otsa-profile__aside {
	position: relative;
	z-index: 3;
	margin-top: -280px;
}

.otsa-profile__frame {
	position: relative;
	padding: 0 18px 18px 0;
}

.otsa-profile__frame::before {
	content: "";
	position: absolute;
	inset: 18px 0 0 18px;
	border-radius: 30px;
	background: linear-gradient(150deg, var(--otsa-green), var(--otsa-blue));
}

.otsa-profile__photo {
	position: relative;
	aspect-ratio: 4 / 5;
	overflow: hidden;
	border-radius: 30px;
	background: #cfd8d3;
	box-shadow: 0 30px 60px rgba(8, 48, 78, 0.25);
}

.otsa .otsa-profile__photo img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: center 20%;
}

.otsa-profile__actions {
	display: grid;
	gap: 12px;
	margin-top: 28px;
}

.otsa-profile__actions .otsa-hbtn {
	justify-content: center;
}

.otsa-back {
	display: inline-flex;
	align-items: center;
	justify-self: center;
	gap: 10px;
	padding: 6px 4px;
	color: var(--otsa-navy);
	font-weight: 700;
	text-decoration: none;
	transition: gap 0.3s var(--otsa-ease), color 0.3s;
}

.otsa-back .otsa-icon {
	transform: rotate(180deg);
}

.otsa .otsa-back:hover {
	gap: 16px;
	color: var(--otsa-green);
}

.otsa-profile__body {
	padding-top: 20px;
}

.otsa-profile__bio {
	font-size: 1rem;
	line-height: 1.85;
}

.otsa-profile__bio > * {
	margin: 0 0 1.1em;
}

.otsa-profile__bio a {
	color: var(--otsa-blue);
	text-decoration: underline;
	text-underline-offset: 3px;
}

.otsa-others {
	position: relative;
	padding: 64px 0 88px;
	background: var(--otsa-mist);
}

/* ---------- Publications page ---------- */

.otsa-feat {
	--otsa-hpub-accent: var(--otsa-blue);
	position: relative;
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
	overflow: hidden;
	border-radius: 32px;
	background: #fff;
	box-shadow: 0 30px 60px rgba(13, 77, 123, 0.12);
	transition: transform 0.5s var(--otsa-ease), box-shadow 0.5s;
}

.otsa-feat:hover {
	transform: translateY(-6px);
	box-shadow: 0 40px 70px rgba(13, 77, 123, 0.18);
}

.otsa-feat__panel {
	position: relative;
	min-height: 440px;
	overflow: hidden;
	background: linear-gradient(150deg, var(--otsa-blue), var(--otsa-navy));
}

.otsa-feat__lines {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	fill: none;
	stroke: #fff;
	stroke-width: 2;
	opacity: 0.12;
}

.otsa-feat__doc {
	--otsa-hpub-accent: var(--otsa-green);
	position: absolute;
	left: 50%;
	top: 64px;
	bottom: -30px;
	display: flex;
	flex-direction: column;
	gap: 10px;
	aspect-ratio: 0.72;
	max-width: 72%;
	transform: translateX(-50%);
	padding: 18px;
	overflow: hidden;
	border-radius: 8px;
	background: #fff;
	box-shadow: 0 24px 46px rgba(0, 0, 0, 0.25);
	transition: transform 0.55s var(--otsa-ease);
}

.otsa-feat:hover .otsa-feat__doc {
	transform: translateX(-50%) translateY(-16px) rotate(-2.5deg);
}

.otsa .otsa-feat__doc img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	object-position: top;
}

.otsa-feat__doc .otsa-hpub__band {
	height: 70px;
}

.otsa-feat__body {
	display: flex;
	flex-direction: column;
	justify-content: center;
	align-items: flex-start;
	gap: 16px;
	padding: 56px;
}

.otsa-feat__body .otsa-kicker {
	margin: 0;
}

.otsa-feat__title {
	margin: 0;
	color: var(--otsa-navy);
	font-size: clamp(1.5rem, 2.4vw, 2rem);
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.2;
}

.otsa .otsa-feat__title a,
.otsa .otsa-feat__title a:hover {
	color: inherit;
}

.otsa-feat__text {
	margin: 0;
	font-size: 1rem;
	line-height: 1.75;
}

.otsa-feat:hover .otsa-feat__btn .otsa-icon {
	transform: translateX(4px);
}

.otsa-filter {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 6px;
	border-radius: 999px;
	background: #fff;
	box-shadow: 0 6px 20px rgba(13, 77, 123, 0.08);
}

.otsa-filter__chip {
	padding: 10px 18px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--otsa-navy);
	font: inherit;
	font-size: 0.9rem;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 0.25s, color 0.25s;
}

.otsa-filter__chip:hover {
	background: var(--otsa-mist);
}

.otsa-filter__chip[aria-pressed="true"] {
	background: var(--otsa-navy);
	color: #fff;
}

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

.otsa-pubgrid .otsa-hpub {
	flex: none;
}

.otsa-pubgrid .is-hidden,
.otsa-resources__list .is-hidden {
	display: none;
}

.otsa-more {
	display: flex;
	justify-content: center;
	margin-top: 36px;
}

.otsa .otsa-more__btn {
	border: 0;
	font: inherit;
	font-weight: 600;
	cursor: pointer;
}

.otsa-more__btn[hidden] {
	display: none;
}

.otsa-empty {
	margin: 24px 0 0;
}

.otsa-resources {
	position: relative;
	padding: calc(var(--otsa-wave-offset, 0px) + 24px) 0 96px;
	background: var(--otsa-mist);
}

.otsa-resources__head {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 24px 56px;
	align-items: end;
	margin-bottom: 28px;
}

.otsa-resources__intro p {
	margin: 0;
	font-size: 1rem;
	line-height: 1.75;
}

.otsa-resources__list {
	display: grid;
	gap: 12px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.otsa-res {
	--otsa-res-color: var(--otsa-navy);
	position: relative;
	display: grid;
	grid-template-columns: 64px minmax(0, 1fr) auto auto;
	gap: 22px;
	align-items: center;
	padding: 18px 22px;
	border-radius: 22px;
	background: #fff;
	transition: transform 0.4s var(--otsa-ease), box-shadow 0.4s;
}

.otsa-res--green { --otsa-res-color: var(--otsa-green); }
.otsa-res--blue { --otsa-res-color: var(--otsa-blue); }

.otsa-res:hover {
	transform: translateX(8px);
	box-shadow: 0 18px 36px rgba(13, 77, 123, 0.1);
}

.otsa-res__icon {
	display: grid;
	place-items: center;
	width: 64px;
	height: 64px;
	border-radius: 18px;
	background: var(--otsa-res-color);
	color: #fff;
	font-size: 0.7rem;
	font-weight: 800;
	letter-spacing: 0.06em;
}

.otsa-res__title {
	margin: 0 0 4px;
	color: var(--otsa-navy);
	font-size: 1.05rem;
	font-weight: 700;
	line-height: 1.35;
}

.otsa .otsa-res__title a,
.otsa .otsa-res__title a:hover {
	color: inherit;
}

.otsa-res__summary {
	margin: 0;
	color: var(--otsa-muted);
	font-size: 0.9rem;
}

.otsa-res__meta {
	color: var(--otsa-muted);
	font-size: 0.8rem;
	font-weight: 600;
	white-space: nowrap;
}

.otsa-res__action {
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--otsa-green);
	color: #fff;
	transition: transform 0.3s var(--otsa-ease);
}

.otsa-res:hover .otsa-res__action {
	transform: scale(1.08);
}

/* ---------- News page ---------- */

.otsa-nfeat {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	min-height: 480px;
	overflow: hidden;
	border-radius: 32px;
	color: #fff;
	background: linear-gradient(150deg, #9cc1b0, #2f6b56);
}

.otsa-nfeat__media {
	position: absolute;
	inset: 0;
}

.otsa .otsa-nfeat__media img {
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform 1.2s var(--otsa-ease);
}

.otsa-nfeat:hover .otsa-nfeat__media img {
	transform: scale(1.05);
}

.otsa-nfeat__body {
	position: relative;
	padding: 140px 48px 44px;
	background: linear-gradient(0deg, rgba(8, 48, 78, 0.94) 0%, rgba(8, 48, 78, 0.6) 55%, rgba(8, 48, 78, 0) 100%);
}

.otsa-nfeat__cat {
	display: inline-block;
	background: var(--otsa-green);
}

.otsa-nfeat__title {
	max-width: 860px;
	margin: 14px 0 12px;
	color: #fff;
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.15;
}

.otsa .otsa-nfeat__title a,
.otsa .otsa-nfeat__title a:hover {
	color: #fff;
}

.otsa-nfeat__excerpt {
	max-width: 760px;
	margin: 0 0 18px;
	color: rgba(255, 255, 255, 0.88);
	font-size: 1rem;
	line-height: 1.7;
}

.otsa-nfeat__foot {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 18px;
	margin: 0;
	color: rgba(255, 255, 255, 0.85);
	font-size: 0.9rem;
}

.otsa-nfeat__btn {
	min-height: 42px;
	padding: 0 18px;
	font-size: 0.9rem;
}

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

.otsa-ncard {
	position: relative;
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border-radius: 24px;
	background: #fff;
	transition: transform 0.5s var(--otsa-ease), box-shadow 0.5s;
}

.otsa-ncard:hover {
	transform: translateY(-8px);
	box-shadow: 0 28px 50px rgba(13, 77, 123, 0.16);
}

.otsa-ncard__media {
	position: relative;
	aspect-ratio: 16 / 10;
	overflow: hidden;
	background: linear-gradient(150deg, #9cc1b0, var(--otsa-green));
}

.otsa-ncard--blue .otsa-ncard__media {
	background: linear-gradient(150deg, #7fb0d3, var(--otsa-blue));
}

.otsa .otsa-ncard__media img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	max-width: none;
	object-fit: cover;
	transition: transform 1.2s var(--otsa-ease);
}

.otsa-ncard:hover .otsa-ncard__media img {
	transform: scale(1.06);
}

.otsa-ncard__body {
	display: flex;
	flex: 1;
	flex-direction: column;
	gap: 10px;
	padding: 22px 24px 24px;
}

.otsa-ncard__cat {
	color: var(--otsa-green);
	font-size: 0.7rem;
	font-weight: 700;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

.otsa-ncard--blue .otsa-ncard__cat {
	color: var(--otsa-blue);
}

.otsa-ncard__title {
	margin: 0;
	color: var(--otsa-navy);
	font-size: 1.06rem;
	font-weight: 700;
	line-height: 1.3;
}

.otsa .otsa-ncard__title a,
.otsa .otsa-ncard__title a:hover {
	color: inherit;
}

.otsa-ncard__excerpt {
	margin: 0;
	color: var(--otsa-muted);
	font-size: 0.9rem;
	line-height: 1.65;
}

.otsa-ncard__date {
	margin-top: auto;
	padding-top: 4px;
	color: var(--otsa-muted);
	font-size: 0.8rem;
	font-weight: 600;
}

.otsa-pagination {
	margin-top: 44px;
}

.otsa-pagination ul {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.otsa-pagination .page-numbers {
	display: grid;
	place-items: center;
	min-width: 46px;
	height: 46px;
	padding: 0 16px;
	border-radius: 999px;
	background: #fff;
	color: var(--otsa-navy);
	font-size: 0.9rem;
	font-weight: 700;
	transition: background-color 0.25s, color 0.25s;
}

.otsa-pagination a.page-numbers:hover,
.otsa-pagination .page-numbers.current {
	background: var(--otsa-navy);
	color: #fff;
}

.otsa-pagination .page-numbers.dots {
	background: none;
}

/* ---------- News article ---------- */

.otsa-article {
	padding: 0 var(--otsa-gutter);
}

.otsa .otsa-article__content img,
.otsa-article__content .alignwide,
.otsa-article__content .alignfull,
.otsa-article__content .wp-block-image,
.otsa-article__content figure {
	max-width: 100% !important;
	margin-left: 0 !important;
	margin-right: 0 !important;
}

.otsa-article__content .alignwide,
.otsa-article__content .alignfull {
	width: 100% !important;
}

/* Featured image right below the title, over the end of the banner. */
.otsa-article-body {
	padding-top: 56px;
}

.otsa-article-body:has(.otsa-article__image) {
	display: flow-root;
	padding-top: 0;
}

.otsa-article__image {
	position: relative;
	z-index: 3;
	max-width: 1040px;
	margin: -250px auto 56px;
}

.otsa .otsa-article__image img {
	width: 100%;
	aspect-ratio: 16 / 9;
	object-fit: cover;
	border-radius: 28px;
	box-shadow: 0 30px 60px rgba(8, 48, 78, 0.22);
}

.otsa-related {
	margin-top: 80px;
}

/* ---------- Contact page ---------- */

/* Channels as a simple list on the left, form in a white card on the right. */
.otsa-contact {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: 56px;
	align-items: start;
}

.otsa-contact__info {
	padding-top: 44px;
}

.otsa-contact__title {
	margin: 0 0 28px;
	color: var(--otsa-navy);
	font-size: clamp(1.6rem, 2.4vw, 2rem);
	font-weight: 700;
	letter-spacing: normal;
	line-height: 1.2;
}

.otsa-channels {
	display: grid;
	gap: 22px;
	margin: 0;
	padding: 0;
	list-style: none;
}

.otsa-channel {
	--otsa-channel-color: var(--otsa-navy);
	display: flex;
	align-items: center;
	gap: 14px;
}

.otsa-channel--green { --otsa-channel-color: var(--otsa-green); }
.otsa-channel--blue { --otsa-channel-color: var(--otsa-blue); }
.otsa-channel--teal { --otsa-channel-color: var(--otsa-teal); }

.otsa-channel__icon {
	display: grid;
	flex: 0 0 48px;
	place-items: center;
	height: 48px;
	border: 2px solid var(--otsa-channel-color);
	border-radius: 50%;
	color: var(--otsa-channel-color);
	transition: background-color 0.3s, color 0.3s;
}

.otsa-channel:hover .otsa-channel__icon {
	background: var(--otsa-channel-color);
	color: #fff;
}

.otsa-channel__label {
	margin: 0 0 2px;
	color: var(--otsa-muted);
	font-size: 0.68rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.otsa-channel__value {
	margin: 0;
	color: var(--otsa-navy);
	font-size: 0.94rem;
	font-weight: 600;
	word-break: break-word;
}

.otsa a.otsa-channel__value {
	color: var(--otsa-navy);
}

.otsa a.otsa-channel__value:hover {
	color: var(--otsa-green);
}

/* Without form: channels in columns. */
.otsa-contact--info {
	grid-template-columns: minmax(0, 1fr);
}

.otsa-contact--info .otsa-channels {
	grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
}

.otsa-form-card {
	position: relative;
	overflow: hidden;
	padding: 44px 48px;
	border-radius: 32px;
	background: #fff;
	box-shadow: 0 30px 60px rgba(13, 77, 123, 0.1);
}

.otsa-form-card::before {
	content: "";
	position: absolute;
	left: 0;
	right: 0;
	top: 0;
	height: 6px;
	background: linear-gradient(90deg, var(--otsa-green), var(--otsa-blue), var(--otsa-navy));
}

.otsa-form-card__title {
	margin: 0 0 8px;
	color: var(--otsa-navy);
	font-size: clamp(1.5rem, 2.4vw, 1.9rem);
	font-weight: 700;
}

.otsa-form-card__text {
	margin-bottom: 26px;
	color: var(--otsa-muted);
}

.otsa-form-card__text p {
	margin: 0;
}

.otsa-alert {
	margin-bottom: 24px;
	padding: 16px 20px;
	border-radius: 14px;
	font-weight: 500;
}

.otsa-alert--success {
	color: #1f5a30;
	background: rgba(68, 150, 90, 0.12);
	border: 1px solid rgba(68, 150, 90, 0.35);
}

.otsa-alert--error {
	color: #8a2a1e;
	background: #fbecea;
	border: 1px solid #efc5bd;
}

.otsa-alert[hidden] {
	display: none;
}

.otsa-form {
	display: grid;
	gap: 18px;
}

.otsa-form__row {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
}

.otsa-form__field label {
	display: block;
	margin-bottom: 8px;
	color: var(--otsa-navy);
	font-size: 0.85rem;
	font-weight: 700;
}

.otsa-req {
	color: var(--otsa-green);
}

.otsa-optional {
	color: var(--otsa-muted);
	font-weight: 400;
}

.otsa-form input[type="text"],
.otsa-form input[type="email"],
.otsa-form textarea {
	display: block;
	width: 100%;
	padding: 14px 16px;
	color: var(--otsa-ink);
	font: inherit;
	font-size: 1rem;
	background: #fbfaf6;
	border: 1.5px solid var(--otsa-line);
	border-radius: 14px;
	box-shadow: none;
	transition: border-color 0.2s, box-shadow 0.2s, background-color 0.2s;
}

.otsa-form textarea {
	min-height: 150px;
	resize: vertical;
}

.otsa-form input:focus,
.otsa-form textarea:focus {
	background: #fff;
	border-color: var(--otsa-blue);
	outline: none;
	box-shadow: 0 0 0 4px rgba(41, 122, 186, 0.12);
}

.otsa-form [aria-invalid="true"] {
	border-color: #c0392b;
}

.otsa-form__error {
	margin: 6px 0 0;
	color: #b03a2e;
	font-size: 0.84rem;
}

.otsa-form__error:empty {
	display: none;
}

.otsa-check {
	display: flex !important;
	gap: 12px;
	align-items: flex-start;
	color: var(--otsa-ink) !important;
	font-size: 0.9rem !important;
	font-weight: 400 !important;
	line-height: 1.55;
	cursor: pointer;
}

.otsa-check input {
	flex: none;
	width: 20px;
	height: 20px;
	margin: 1px 0 0;
	accent-color: var(--otsa-green);
}

.otsa-check a {
	color: var(--otsa-blue);
	text-decoration: underline;
}

.otsa .otsa-form__submit {
	justify-self: start;
	min-height: 52px;
	padding: 0 28px;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--otsa-green) !important;
	color: #fff !important;
	font: inherit;
	font-size: 1rem;
	font-weight: 600;
	cursor: pointer;
}

.otsa .otsa-form__submit:hover,
.otsa .otsa-form__submit:focus-visible {
	background: var(--otsa-green-dark) !important;
	color: #fff !important;
}

.otsa-form__submit[disabled] {
	opacity: 0.6;
	cursor: wait;
}

.otsa-form__trap {
	position: absolute !important;
	left: -9999px !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
}

/* ---------- Indicators (coming soon) ---------- */

.otsa-soon {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr);
	gap: 64px;
	align-items: center;
}

.otsa-soon__badge {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	padding: 8px 16px 8px 12px;
	border-radius: 999px;
	background: #fff;
	color: var(--otsa-green);
	font-size: 0.75rem;
	font-weight: 700;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	box-shadow: 0 6px 18px rgba(13, 77, 123, 0.08);
}

.otsa-soon__title {
	margin-bottom: 16px;
}

.otsa-soon__text {
	margin-bottom: 28px;
	font-size: 1rem;
	line-height: 1.8;
}

.otsa-soon__text p {
	margin: 0 0 10px;
}

.otsa-soon__image {
	overflow: hidden;
	border-radius: 32px;
	box-shadow: 0 40px 70px rgba(13, 77, 123, 0.2);
}

.otsa-dash {
	position: relative;
	padding: 24px;
	border-radius: 32px;
	background: linear-gradient(150deg, var(--otsa-navy), var(--otsa-blue));
	box-shadow: 0 40px 70px rgba(13, 77, 123, 0.28);
}

.otsa-dash__grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
}

.otsa-dash__grid > span {
	border-radius: 18px;
	background: rgba(255, 255, 255, 0.12);
}

.otsa-dash__kpi {
	display: grid;
	gap: 10px;
	padding: 18px;
}

.otsa-dash__kpi i {
	width: 50%;
	height: 8px;
	border-radius: 4px;
	background: rgba(255, 255, 255, 0.45);
}

.otsa-dash__kpi b {
	width: 75%;
	height: 24px;
	border-radius: 8px;
	background: rgba(255, 255, 255, 0.3);
}

@keyframes otsa-bar {
	from { transform: scaleY(0.2); }
	to { transform: scaleY(1); }
}

.otsa-dash__bars {
	grid-column: 1 / 3;
	display: flex;
	align-items: flex-end;
	gap: 12px;
	height: 210px;
	padding: 22px;
}

.otsa-dash__bars i {
	flex: 1;
	border-radius: 8px 8px 3px 3px;
	background: var(--otsa-teal);
	transform-origin: bottom;
	animation: otsa-bar 2.6s var(--otsa-ease) infinite alternate;
}

.otsa-dash__bars i:nth-child(1) { height: 45%; }
.otsa-dash__bars i:nth-child(2) { height: 70%; background: #fff; animation-delay: 0.15s; }
.otsa-dash__bars i:nth-child(3) { height: 55%; animation-delay: 0.3s; }
.otsa-dash__bars i:nth-child(4) { height: 88%; background: #fff; animation-delay: 0.45s; }
.otsa-dash__bars i:nth-child(5) { height: 62%; animation-delay: 0.6s; }
.otsa-dash__bars i:nth-child(6) { height: 76%; background: #fff; animation-delay: 0.75s; }
.otsa-dash__bars i:nth-child(7) { height: 40%; animation-delay: 0.9s; }

.otsa-dash__donut {
	display: grid;
	place-items: center;
}

.otsa-dash__donut svg {
	width: min(120px, 80%);
	height: auto;
	aspect-ratio: 1;
	fill: none;
	stroke-width: 6;
	stroke: rgba(255, 255, 255, 0.2);
}

.otsa-dash__donut .is-a {
	stroke: var(--otsa-teal);
	stroke-dasharray: 62 38;
	stroke-dashoffset: 25;
}

.otsa-dash__donut .is-b {
	stroke: #fff;
	stroke-dasharray: 20 80;
	stroke-dashoffset: 63;
}

.otsa-dash__line {
	grid-column: 1 / -1;
	height: 120px;
}

.otsa-dash__line svg {
	width: 100%;
	height: 100%;
}

.otsa-dash__line path {
	fill: none;
	stroke: var(--otsa-teal);
	stroke-width: 3;
	stroke-linecap: round;
	stroke-dasharray: 1800;
	animation: otsa-draw 4s ease-out infinite alternate;
}

.otsa-dash__veil {
	position: absolute;
	inset: 0;
	display: grid;
	place-items: center;
	border-radius: 32px;
	background: rgba(8, 48, 78, 0.06);
}

.otsa-dash__veil span {
	padding: 12px 22px;
	border-radius: 999px;
	background: #fff;
	color: var(--otsa-navy);
	font-size: 0.85rem;
	font-weight: 800;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	box-shadow: 0 16px 30px rgba(8, 48, 78, 0.25);
}

/* ---------- Inner pages responsive ---------- */

@media (max-width: 1099px) {
	.otsa-team {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

	.otsa-pubgrid,
	.otsa-newsgrid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.otsa-profile__grid {
		grid-template-columns: 320px minmax(0, 1fr);
		gap: 48px;
	}

	.otsa-phero--profile .otsa-phero__inner {
		padding-left: calc(320px + 48px + var(--otsa-gutter));
	}
}

@media (max-width: 900px) {
	.otsa-phero {
		min-height: 440px;
		padding: 110px 0 130px;
	}

	.otsa-phero--profile {
		min-height: 0;
		padding: 120px 0 200px;
		text-align: center;
	}

	.otsa-phero--profile .otsa-phero__inner {
		padding-left: var(--otsa-gutter);
	}

	.otsa-phero--profile .otsa-phero__crumbs {
		justify-content: center;
	}

	.otsa-profile__grid,
	.otsa-feat,
	.otsa-resources__head,
	.otsa-contact,
	.otsa-soon {
		grid-template-columns: minmax(0, 1fr);
	}

	.otsa-profile__aside {
		width: min(340px, 100%);
		margin: -190px auto 0;
	}

	.otsa-profile__body {
		padding-top: 24px;
	}

	.otsa-feat__panel {
		min-height: 340px;
	}

	.otsa-feat__doc {
		top: 40px;
	}

	.otsa-feat__body {
		padding: 32px 28px;
	}

	.otsa-nfeat__body {
		padding: 110px 24px 28px;
	}

	.otsa-phero--article:has(+ .otsa-article-body .otsa-article__image) {
		padding-bottom: 170px;
	}

	.otsa-article__image {
		margin-top: -130px;
		padding: 0 var(--otsa-gutter);
	}

	.otsa-contact {
		gap: 40px;
	}

	.otsa-form-card {
		padding: 36px 24px;
	}
}

@media (max-width: 767px) {
	.otsa-team {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 18px 14px;
	}

	.otsa-member__info {
		left: 14px;
		right: 14px;
		bottom: 14px;
	}

	.otsa-member__name {
		font-size: 0.98rem;
	}

	.otsa-form__row {
		grid-template-columns: minmax(0, 1fr);
	}

	.otsa-res {
		grid-template-columns: 52px minmax(0, 1fr) auto;
		gap: 14px;
		padding: 16px;
	}

	.otsa-res__icon {
		width: 52px;
		height: 52px;
	}

	.otsa-res__meta {
		display: none;
	}
}

@media (max-width: 599px) {
	.otsa-pubgrid,
	.otsa-newsgrid {
		grid-template-columns: minmax(0, 1fr);
	}

	.otsa-intro {
		padding-bottom: 44px;
	}
}

@media (hover: none) {
	.otsa-member__go {
		display: none;
	}
}

/* ---------- Reduced motion ---------- */

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

	[data-otsa-type] {
		visibility: visible !important;
	}
}

/* Text shown only on phones / only on larger screens. */
.otsa-show-phone {
	display: none;
}

@media (max-width: 600px) {
	.otsa-show-phone {
		display: inline;
	}

	.otsa-hide-phone {
		display: none;
	}
}

/* ---------- Phone refinements ---------- */

@media (max-width: 600px) {
	.otsa-det__btn {
		white-space: nowrap;
		font-size: 0.8rem;
	}

	.otsa-filter {
		flex-wrap: nowrap;
		max-width: 100%;
		overflow-x: auto;
		scrollbar-width: none;
	}

	.otsa-filter::-webkit-scrollbar {
		display: none;
	}

	.otsa-filter__chip {
		flex: none;
		padding: 9px 15px;
	}

	.otsa-res__summary {
		display: none;
	}

	.otsa-res__action {
		width: 40px;
		height: 40px;
	}

	.otsa-profile__aside {
		width: min(300px, 100%);
	}

	.otsa-dash {
		padding: 16px;
	}

	.otsa-dash__grid {
		gap: 10px;
	}

	.otsa-dash__bars {
		height: 160px;
		gap: 6px;
		padding: 14px;
	}

	.otsa-dash__kpi {
		padding: 12px;
	}

	.otsa-hero__eyebrow {
		letter-spacing: 0.1em;
	}

	.otsa-hcta__title {
		font-size: 1.45rem;
	}
}

/* Menu over the banners: soft shadow so the links read on light photos. */
body.otsa-layout #header .ct-menu-link {
	text-shadow: 0 1px 10px rgba(8, 48, 78, 0.55);
}


/* Words kept together on one line. */
.otsa-nowrap {
	white-space: nowrap;
}

/* The hero title gets more room so it fits in one line on large screens. */
.otsa-hero .otsa-hero__inner {
	max-width: 1500px;
}

@media (max-width: 900px) {
	.otsa-hero__title {
		text-wrap: balance;
	}
}
