.elementor-kit-4{--e-global-color-primary:#6EC1E4;--e-global-color-secondary:#54595F;--e-global-color-text:#7A7A7A;--e-global-color-accent:#61CE70;--e-global-typography-primary-font-family:"Roboto";--e-global-typography-primary-font-weight:600;--e-global-typography-secondary-font-family:"Roboto Slab";--e-global-typography-secondary-font-weight:400;--e-global-typography-text-font-family:"Roboto";--e-global-typography-text-font-weight:400;--e-global-typography-accent-font-family:"Roboto";--e-global-typography-accent-font-weight:500;}.elementor-kit-4 e-page-transition{background-color:#FFBC7D;}.elementor-section.elementor-section-boxed > .elementor-container{max-width:1140px;}.e-con{--container-max-width:1140px;}.elementor-widget:not(:last-child){--kit-widget-spacing:20px;}.elementor-element{--widgets-spacing:20px 20px;--widgets-spacing-row:20px;--widgets-spacing-column:20px;}{}h1.entry-title{display:var(--page-title-display);}.site-header .site-branding{flex-direction:column;align-items:stretch;}.site-header{padding-inline-end:0px;padding-inline-start:0px;}.site-footer .site-branding{flex-direction:column;align-items:stretch;}@media(max-width:1024px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:1024px;}.e-con{--container-max-width:1024px;}}@media(max-width:767px){.elementor-section.elementor-section-boxed > .elementor-container{max-width:767px;}.e-con{--container-max-width:767px;}}
/* Start custom CSS */@import url("https://fonts.googleapis.com/css2?family=Montserrat:wght@400;500;600&family=Playfair+Display:wght@500;600&display=swap");

:root {
	color-scheme: light;
	--ink: #101b2e;
	--navy: #2a4876;
	--navy-dark: #20395f;
	--cyan: #4ac1ef;
	--cyan-pale: #e4f5fb;
	--gray: #ebebeb;
	--gray-light: #f6f6f6;
	--line: #d7dce2;
	--muted: #5b6677;
	--white: #ffffff;
	--error: #8b2d2d;
	--pad: clamp(1.25rem, 5vw, 6rem);
	--section-space: clamp(4.5rem, 8vw, 8rem);
	--header-height: 5.75rem;
	--measure: 68ch;
	--serif: "Playfair Display", Georgia, serif;
	--sans: "Montserrat", Arial, sans-serif;
	--ease: cubic-bezier(0.16, 1, 0.3, 1);
}

a:hover{
	color: var(--white);
}

*,
*::before,
*::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}

html {
	scroll-behavior: smooth;
	scroll-padding-top: var(--header-height);
	text-size-adjust: 100%;
}

body {
	min-width: 20rem;
	font-family: var(--sans);
	font-size: clamp(0.98rem, 0.35vw + 0.9rem, 1.08rem);
	line-height: 1.7;
	color: var(--ink);
	background: var(--white);
	-webkit-font-smoothing: antialiased;
}

img,
svg {
	display: block;
	max-width: 100%;
}

button,
input,
select,
textarea {
	font: inherit;
}

button,
select,
summary {
	cursor: pointer;
}

textarea {
	resize: vertical;
}

a {
	color: inherit;
}

h1,
h2,
h3 {
	font-family: var(--serif);
	font-weight: 500;
	line-height: 1.14;
	letter-spacing: -0.025em;
	color: var(--navy);
	text-wrap: balance;
}

h1 {
	font-size: clamp(3rem, 5.3vw, 5.5rem);
}

h2 {
	font-size: clamp(2.35rem, 4vw, 4.25rem);
}

h3 {
	font-size: clamp(1.45rem, 2vw, 2rem);
}

p,
figcaption {
	max-inline-size: var(--measure);
	overflow-wrap: break-word;
}

main > section {
	width: 100%;
	scroll-margin-top: var(--header-height);
}

.skip-link {
	position: fixed;
	top: 0.75rem;
	left: 0.75rem;
	z-index: 100;
	padding: 0.75rem 1rem;
	color: var(--white);
	background: var(--navy);
	transform: translateY(-160%);
	transition: transform 160ms var(--ease);
}

.skip-link:focus {
	transform: translateY(0);
}

.button {
	display: inline-flex;
	min-height: 3.2rem;
	align-items: center;
	justify-content: center;
	padding: 0.85rem 1.45rem;
	border: 1px solid var(--navy);
	border-radius: 2px;
	font-size: 0.85rem;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: 0.02em;
	color: var(--white);
	text-decoration: none;
	background: var(--navy);
	transition: background-color 160ms var(--ease), border-color 160ms var(--ease);
}

.button:hover {
	background: var(--navy-dark);
	border-color: var(--navy-dark);
}

.text-link {
	font-size: 0.9rem;
	font-weight: 600;
	color: var(--navy);
	text-underline-offset: 0.28rem;
}

.text-link:hover {
	color: #126d91;
}

:focus-visible {
	outline: 3px solid var(--cyan);
	outline-offset: 4px;
}

[hidden] {
	display: none !important;
}

@scope (.site-header) {
	:scope {
		position: sticky;
		top: 0;
		z-index: 30;
		display: grid;
		width: 100% !important;
		max-width: 100% !important;
		min-height: var(--header-height);
		grid-template-columns: auto minmax(0, 1fr) auto;
		align-items: center;
		gap: clamp(1rem, 2.5vw, 2.5rem);
		padding: 0.75rem var(--pad);
		background: rgb(255 255 255 / 0.97);
		box-shadow: 0 0.35rem 1.2rem rgb(16 27 46 / 0.1);
	}

	.brand {
		grid-column: 1;
		grid-row: 1;
	}

	.brand img {
		width: clamp(12rem, 17vw, 18rem);
		height: auto;
	}

	nav {
		display: flex;
		grid-column: 2;
		grid-row: 1;
		justify-content: center;
		gap: clamp(0.85rem, 1.6vw, 1.75rem);
	}

	nav a {
		font-size: clamp(0.78rem, 0.28vw + 0.72rem, 0.95rem);
		font-weight: 500;
		letter-spacing: 0.04em;
		color: var(--ink);
		text-decoration: none;
		white-space: nowrap;
	}

	nav a:hover {
		color: var(--navy);
	}

	.header-action {
		grid-column: 3;
		grid-row: 1;
		justify-self: end;
	}

	@media (max-width: 52rem) {
		:scope {
			grid-template-columns: 1fr auto;
			gap: 0.7rem 1rem;
		}

		.brand,
		.header-action {
			grid-row: 1;
		}

		.brand {
			grid-column: 1;
		}

		.header-action {
			grid-column: 2;
		}

		nav {
			grid-column: 1 / -1;
			grid-row: 2;
			justify-content: flex-start;
			overflow-x: auto;
			padding-block: 0.2rem;
		}
	}

	@media (max-width: 35rem) {
		.header-action {
			display: none;
		}
	}
}

@scope (.hero) {
	:scope {
		display: grid;
		min-height: calc(100svh - var(--header-height));
		grid-template-columns: minmax(0, 45fr) minmax(0, 55fr);
		background: var(--white);
	}

	article {
		display: flex;
		flex-direction: column;
		align-items: flex-start;
		justify-content: center;
		gap: 1.55rem;
		padding: clamp(4.5rem, 8vw, 8rem) var(--pad);
	}

	h1 {
		max-inline-size: 10ch;
	}

	.lead {
		font-size: clamp(1.1rem, 1.1vw, 1.3rem);
		line-height: 1.65;
		color: #33425a;
	}

	.fact {
		position: relative;
		padding-left: 1.3rem;
		font-size: 0.9rem;
		font-weight: 600;
		color: var(--navy);
	}

	.fact::before {
		position: absolute;
		top: 0.72em;
		left: 0;
		width: 0.45rem;
		height: 0.45rem;
		border-radius: 50%;
		background: var(--cyan);
		content: "";
	}

	.actions {
		display: flex;
		align-items: center;
		flex-wrap: wrap;
		gap: 1rem 1.4rem;
		margin-top: 0.25rem;
	}

	figure {
		position: relative;
		min-height: 40rem;
		overflow: hidden;
	}

	figure img {
		width: 100%;
		height: 100%;
		object-fit: cover;
		object-position: 56% center;
	}

	figcaption {
		position: absolute;
		right: 1rem;
		bottom: 1rem;
		padding: 0.4rem 0.65rem;
		font-size: 0.68rem;
		line-height: 1.45;
		color: var(--white);
		background: rgb(16 27 46 / 0.82);
	}

	@media (max-width: 54rem) {
		:scope {
			min-height: auto;
			grid-template-columns: 1fr;
		}

		h1 {
			max-inline-size: 13ch;
		}

		figure {
			min-height: 34rem;
		}
	}

	@media (max-width: 38rem) {
		article {
			padding-block: 4rem;
		}

		figure {
			min-height: 27rem;
		}
	}
}

@scope (.intro) {
	:scope {
		display: grid;
		grid-template-columns: repeat(12, minmax(0, 1fr));
		gap: clamp(1.5rem, 3vw, 3.5rem);
		padding: var(--section-space) var(--pad);
		background: var(--gray);
	}

	h2 {
		grid-column: 1 / 7;
		grid-row: 1 / span 2;
	}

	p {
		grid-column: 8 / -1;
	}

	@media (max-width: 52rem) {
		h2,
		p {
			grid-column: 1 / -1;
			grid-row: auto;
		}
	}
}

@scope (.functions) {
	:scope {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(1rem, 2vw, 2rem);
		padding: var(--section-space) var(--pad);
		background: var(--gray-light);
	}

	:scope > h2,
	:scope > p {
		grid-column: 1 / -1;
		justify-self: center;
		text-align: center;
	}

	:scope > p {
		margin-bottom: clamp(1.5rem, 3vw, 3rem);
		color: var(--muted);
	}

	article {
		padding: clamp(1.75rem, 3vw, 3rem);
		background: var(--white);
		box-shadow: 0 0.8rem 2.5rem rgb(42 72 118 / 0.07);
	}

	article h3 {
		margin-bottom: 2rem;
		padding-bottom: 1.2rem;
		border-bottom: 1px solid var(--cyan);
	}

	dl {
		display: grid;
		gap: 0.55rem;
	}

	dt {
		font-weight: 600;
		color: var(--navy);
	}

	dd {
		margin-bottom: 1.2rem;
		color: var(--muted);
	}

	@media (max-width: 62rem) {
		:scope {
			grid-template-columns: 1fr;
		}
	}
}

@scope (.image-text) {
	:scope {
		display: grid;
		min-height: 48rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		background: var(--white);
	}

	figure {
		position: relative;
		min-height: 100%;
		overflow: hidden;
	}

	figure img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	figcaption {
		position: absolute;
		bottom: 1rem;
		left: 1rem;
		padding: 0.4rem 0.65rem;
		font-size: 0.68rem;
		line-height: 1.45;
		color: var(--white);
		background: rgb(16 27 46 / 0.82);
	}

	article {
		align-content: center;
		padding: var(--section-space) var(--pad);
	}

	article > p {
		margin-top: 1.4rem;
		color: #3d485a;
	}

	@media (max-width: 58rem) {
		:scope {
			min-height: auto;
			grid-template-columns: 1fr;
		}

		figure {
			min-height: 34rem;
		}
	}

	@media (max-width: 38rem) {
		figure {
			min-height: 27rem;
		}
	}
}

@scope (.practice) {
	ol {
		margin-top: 2.5rem;
		list-style: none;
		counter-reset: process;
	}

	li {
		position: relative;
		padding: 1rem 0 1rem 3rem;
		border-top: 1px solid var(--line);
		counter-increment: process;
		color: var(--muted);
	}

	li::before {
		position: absolute;
		left: 0;
		font-weight: 600;
		color: var(--cyan);
		content: counter(process, decimal-leading-zero);
	}

	li strong {
		color: var(--ink);
	}
}

@scope (.profile) {
	:scope {
		display: grid;
		min-height: 46rem;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		background: var(--cyan-pale);
	}

	article {
		align-content: center;
		padding: var(--section-space) var(--pad);
	}

	article > p {
		margin-top: 1.5rem;
		color: #3d5364;
	}

	ul {
		margin-top: 2.4rem;
		list-style: none;
	}

	li {
		position: relative;
		padding: 0.9rem 0 0.9rem 1.7rem;
		border-top: 1px solid #bddbe7;
		font-weight: 500;
		color: var(--navy);
	}

	li::before {
		position: absolute;
		top: 1.55rem;
		left: 0;
		width: 0.45rem;
		height: 0.45rem;
		border-radius: 50%;
		background: var(--cyan);
		content: "";
	}

	figure {
		position: relative;
		min-height: 100%;
		overflow: hidden;
	}

	figure img {
		width: 100%;
		height: 100%;
		object-fit: cover;
	}

	figcaption {
		position: absolute;
		right: 1rem;
		bottom: 1rem;
		padding: 0.4rem 0.65rem;
		font-size: 0.68rem;
		line-height: 1.45;
		color: var(--white);
		background: rgb(16 27 46 / 0.82);
	}

	@media (max-width: 58rem) {
		:scope {
			min-height: auto;
			grid-template-columns: 1fr;
		}

		figure {
			min-height: 32rem;
		}
	}
}

@scope (.research) {
	:scope {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(1rem, 2vw, 2rem);
		padding: var(--section-space) var(--pad) 0;
		background: var(--white);
	}

	:scope > h2,
	:scope > p {
		grid-column: 1 / -1;
		justify-self: center;
		text-align: center;
	}

	:scope > p {
		margin-bottom: clamp(1.5rem, 3vw, 3rem);
		color: var(--muted);
	}

	ol {
		display: grid;
		grid-column: 1 / -1;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: clamp(1rem, 2vw, 2rem);
		list-style: none;
		counter-reset: research;
	}

	li {
		position: relative;
		padding: clamp(1.75rem, 3vw, 3rem);
		background: var(--gray-light);
		counter-increment: research;
	}

	li::before {
		display: block;
		margin-bottom: 1.5rem;
		font-size: 0.78rem;
		font-weight: 600;
		letter-spacing: 0.08em;
		color: var(--cyan);
		content: counter(research, decimal-leading-zero);
	}

	li h3 {
		margin-bottom: 1rem;
	}

	li p {
		color: var(--muted);
	}

	aside {
		display: grid;
		grid-column: 1 / -1;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 2rem;
		margin: clamp(3rem, 6vw, 6rem) calc(var(--pad) * -1) 0;
		padding: clamp(3rem, 6vw, 6rem) var(--pad);
		color: var(--white);
		background: var(--navy);
	}

	aside h3 {
		font-size: clamp(2rem, 3vw, 3.3rem);
		color: var(--white);
	}

	aside p {
		color: #e1e8f1;
	}

	@media (max-width: 58rem) {
		:scope,
		ol,
		aside {
			grid-template-columns: 1fr;
		}
	}
}

@scope (.limits) {
	:scope {
		display: grid;
		grid-template-columns: repeat(3, minmax(0, 1fr));
		gap: 0 clamp(1.5rem, 3vw, 3.5rem);
		padding: var(--section-space) var(--pad);
		background: var(--gray);
	}

	:scope > h2,
	:scope > p {
		grid-column: 1 / -1;
		justify-self: center;
		text-align: center;
	}

	:scope > p {
		margin-bottom: clamp(2rem, 5vw, 5rem);
		color: var(--muted);
	}

	article {
		padding-top: 1.6rem;
		border-top: 1px solid #bfc5cc;
	}

	article h3 {
		margin-bottom: 1rem;
	}

	article p {
		color: var(--muted);
	}

	@media (max-width: 58rem) {
		:scope {
			grid-template-columns: 1fr;
			gap: 2rem;
		}
	}
}

@scope (.founder) {
	:scope {
		background: var(--white);
	}
}

@scope (.contact) {
	:scope {
		padding: var(--section-space) var(--pad);
		background: #e8edf2;
	}

	:scope > article {
		align-content: center;
		text-align: center;
	}

	:scope > article > p {
		margin-inline: auto;
		margin-top: 1.5rem;
		color: var(--muted);
	}

	.email-link {
		display: inline-block;
		margin-top: clamp(2rem, 4vw, 3.5rem);
		font-family: var(--serif);
		font-size: clamp(1.4rem, 2.4vw, 2.5rem);
		line-height: 1.2;
		letter-spacing: -0.02em;
		color: var(--navy);
		text-underline-offset: 0.35rem;
		overflow-wrap: anywhere;
	}

}

@scope (.site-footer) {
	:scope {
		display: flex;
		width: 100% !important;
		max-width: 100% !important;
		align-items: center;
		justify-content: space-between;
		gap: 2rem;
		padding: clamp(1.5rem, 3vw, 2.5rem) var(--pad);
		color: var(--white);
		background: var(--navy-dark);
	}

	.footer-brand {
		display: flex;
		align-items: center;
		gap: clamp(1rem, 2vw, 2rem);
	}

	.footer-brand img {
		width: clamp(10rem, 14vw, 13rem);
		height: auto;
	}

	.footer-brand p {
		font-size: 0.72rem;
		color: #dce5f1;
		white-space: nowrap;
	}

	nav {
		display: flex;
		align-items: center;
		justify-content: flex-end;
		gap: clamp(0.8rem, 1.6vw, 1.5rem);
		font-size: 0.72rem;
	}

	nav a,
	summary,
	button {
		border: 0;
		font: inherit;
		color: var(--white);
		text-decoration: none;
		background: transparent;
		white-space: nowrap;
		background-color: unset !important;
border: unset !important;
border-radius: unset !important;
color: unset !important;
display: unset !important;
font-size: unset !important;
font-weight: unset !important;
padding: unset !important;
text-align: unset !important;
transition: unset !important;
-webkit-user-select: unset !important;
-moz-user-select: unset !important;
user-select: unset !important;
white-space: unset !important;
	}

	nav a:hover,
	summary:hover,
	button:hover {
		text-decoration: underline;
		text-underline-offset: 0.25rem;
	}

	details {
		position: relative;
	}

	summary {
		list-style: none;
	}

	summary::-webkit-details-marker {
		display: none;
	}

	details p {
		position: absolute;
		right: 0;
		bottom: calc(100% + 1rem);
		z-index: 2;
		width: min(22rem, 80vw);
		padding: 1rem;
		box-shadow: 0 0.75rem 2rem rgb(6 18 36 / 0.2);
		font-size: 0.78rem;
		line-height: 1.55;
		color: var(--ink);
		background: var(--white);
	}

	@media (max-width: 62rem) {
		:scope {
			align-items: flex-start;
			flex-direction: column;
		}

		nav {
			justify-content: flex-start;
			flex-wrap: wrap;
		}
	}

	@media (max-width: 38rem) {
		.footer-brand {
			align-items: flex-start;
			flex-direction: column;
		}

		details p {
			right: auto;
			left: 0;
		}
	}
}

@media (prefers-reduced-motion: no-preference) {
	@scope (.hero) {
		figure {
			animation: image-arrival 900ms var(--ease) both;
		}
	}
}

@media (prefers-reduced-motion: reduce) {
	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		animation-duration: 0.01ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: 0.01ms !important;
	}
}

@keyframes image-arrival {
	from {
		clip-path: inset(0 0 0 5%);
		filter: saturate(0.85);
	}
	to {
		clip-path: inset(0);
		filter: saturate(1);
	}
}/* End custom CSS */