@import url("fontawesome-all.min.css");

/* ============================================================
   Source Sans Pro — self-hosted (latin + latin-ext only)
   ============================================================ */
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url('../fonts/source-sans-pro-latin-ext-300-normal.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
	              U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
	              U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 300;
	font-display: swap;
	src: url('../fonts/source-sans-pro-latin-300-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
	              U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
	              U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: italic;
	font-weight: 300;
	font-display: swap;
	src: url('../fonts/source-sans-pro-latin-ext-300-italic.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
	              U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
	              U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: italic;
	font-weight: 300;
	font-display: swap;
	src: url('../fonts/source-sans-pro-latin-300-italic.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
	              U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
	              U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/source-sans-pro-latin-ext-400-normal.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
	              U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
	              U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/source-sans-pro-latin-400-normal.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
	              U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
	              U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/source-sans-pro-latin-ext-400-italic.woff2') format('woff2');
	unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF,
	              U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF,
	              U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
	font-family: 'Source Sans Pro';
	font-style: italic;
	font-weight: 400;
	font-display: swap;
	src: url('../fonts/source-sans-pro-latin-400-italic.woff2') format('woff2');
	unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA,
	              U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122,
	              U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ============================================================
   Reset
   ============================================================ */
html, body, div, span, applet, object,
iframe, h1, h2, h3, h4, h5, h6, p, blockquote,
pre, a, abbr, acronym, address, big, cite,
code, del, dfn, em, img, ins, kbd, q, s, samp,
small, strike, strong, sub, sup, tt, var, b,
u, i, center, dl, dt, dd, ol, ul, li, fieldset,
form, label, legend, table, caption, tbody,
tfoot, thead, tr, th, td, article, aside,
canvas, details, embed, figure, figcaption,
footer, header, hgroup, menu, nav, output, ruby,
section, summary, time, mark, audio, video {
	margin: 0;
	padding: 0;
	border: 0;
	font-size: 100%;
	font: inherit;
	vertical-align: baseline;
}

article, aside, details, figcaption, figure,
footer, header, hgroup, menu, nav, section {
	display: block;
}

body { line-height: 1; }
ol, ul { list-style: none; }
blockquote, q { quotes: none; }
blockquote:before, blockquote:after, q:before, q:after { content: ''; content: none; }
table { border-collapse: collapse; border-spacing: 0; }

body { -webkit-text-size-adjust: none; }
mark { background-color: transparent; color: inherit; }
input::-moz-focus-inner { border: 0; padding: 0; }
input, select, textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
}

/* ============================================================
   Base
   ============================================================ */
@-ms-viewport { width: device-width; }

body { -ms-overflow-style: scrollbar; }

@media screen and (max-width: 480px) {
	html, body { min-width: 320px; }
}

html { box-sizing: border-box; }
*, *:before, *:after { box-sizing: inherit; }

body { background: #f5f5f5; }

body, input, select, textarea {
	color: #222222;
	font-family: 'Source Sans Pro', sans-serif;
	font-size: 16pt;
	font-weight: 300;
	line-height: 1.65em;
	letter-spacing: -0.015em;
}

a {
	-moz-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	-webkit-transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	transition: color 0.2s ease-in-out, border-bottom-color 0.2s ease-in-out;
	border-bottom: dotted 1px;
	color: #e89980;
	text-decoration: none;
}
a:hover { border-bottom-color: transparent; }

strong, b { color: #646464; font-weight: 400; }
em, i { font-style: italic; }
p { margin: 0 0 2em 0; }

h1, h2, h3, h4, h5, h6 {
	color: #646464;
	font-weight: bold;
	line-height: 1em;
	margin: 0 0 0.5em 0;
}
h1 a, h2 a, h3 a, h4 a, h5 a, h6 a { color: inherit; text-decoration: none; }

.box.special h2 { font-weight: normal !important; }

h2 { font-size: 2.25em; line-height: 1.5em; letter-spacing: -0.035em; }
h3 { font-size: 1.75em; line-height: 1.5em; letter-spacing: -0.025em; }
h4 { font-size: 1.1em;  line-height: 1.5em; letter-spacing: 0; }
h5 { font-size: 0.9em;  line-height: 1.5em; letter-spacing: 0; }
h6 { font-size: 0.7em;  line-height: 1.5em; letter-spacing: 0; }

sub { font-size: 0.8em; position: relative; top:  0.5em; }
sup { font-size: 0.8em; position: relative; top: -0.5em; }

hr { border: 0; border-bottom: solid 2px #e5e5e5; margin: 2em 0; }
hr.major { margin: 3em 0; }

.align-left   { text-align: left; }
.align-center { text-align: center; }
.align-right  { text-align: right; }

/* ============================================================
   Slider  (index.html & clients.html image carousel)
   ============================================================ */
.slider {
	width: 100%;
	height: 450px;
	overflow: hidden;
	position: relative;
	border-radius: 10px;
}

.slides {
	display: flex;
	width: 100%;
	height: 100%;
	transition: transform 1.2s cubic-bezier(0.45, 0.05, 0.55, 0.95);
}

.slider input[type="radio"] { display: none; }

.slide {
	flex: 0 0 100%;
	height: 100%;
}
.slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

/* First slide — visible by default before any radio interaction */
.slide.first { display: block; }

/* Radio-driven slide navigation */
#radio1:checked ~ .slides { transform: translateX(0%); }
#radio2:checked ~ .slides { transform: translateX(-100%); }
#radio3:checked ~ .slides { transform: translateX(-200%); }
#radio4:checked ~ .slides { transform: translateX(-300%); }

.navigation-manual {
	position: absolute;
	width: 100%;
	bottom: 20px;
	display: flex;
	justify-content: center;
}

.manual-btn {
	border: 2px solid #fff;
	padding: 5px;
	border-radius: 10px;
	cursor: pointer;
	transition: background 0.4s;
	margin: 0 10px;
}
.manual-btn:hover { background: #fff; }

#radio1:checked ~ .navigation-manual .manual-btn:nth-child(1),
#radio2:checked ~ .navigation-manual .manual-btn:nth-child(2),
#radio3:checked ~ .navigation-manual .manual-btn:nth-child(3),
#radio4:checked ~ .navigation-manual .manual-btn:nth-child(4) {
	background: #fff;
}

/* ============================================================
   Image entrance animations
   ============================================================ */
@keyframes slide-up {
	from { transform: translateY(100%); }
	to   { transform: translateY(0); }
}

.image-cont {
	overflow: hidden;
	width: 200px;
	height: 200px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: auto;
}
.image-cont img {
	width: 100%;
	height: 100%;
	transform: translateY(100%);
	animation: slide-up 1.5s ease-in-out forwards;
}

.image-contITS {
	overflow: hidden;
	width: 450px;
	height: 300px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: auto;
}
.image-contITS img {
	width: 100%;
	height: 100%;
	transform: translateY(100%);
	animation: slide-up 1.5s ease-in-out forwards;
}

.image-contMain {
	overflow: hidden;
	width: 450px;
	height: 450px;
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: auto;
}
.image-contMain img {
	width: 100%;
	height: 100%;
}

/* ============================================================
   Banner inner  (index.html — logo + flanking slide-in images)
   ============================================================ */
#banner {
	position: relative;
	padding-top: 18px;
}

.banner-inner {
	position: relative;
	width: 100%;
	height: auto;
	min-height: 260px;
	display: block;
}

.banner-inner .banner-center {
	max-width: 780px;
	margin: 0 auto;
	text-align: center;
	position: relative;
	z-index: 3;
}

.banner-inner .slider-item {
	position: absolute;
	top: 50%;
	width: 420px;
	height: 220px;
	overflow: hidden;
	opacity: 0.6;
	border-radius: 8px;
	box-shadow: 0 8px 22px rgba(0,0,0,0.25);
	background: rgba(255,255,255,0.03);
	transform: translateY(-50%);
	z-index: 2;
}
.banner-inner .slider-item img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.banner-inner .slider-left {
	left: 0;
	transform: translateX(-110%) translateY(-50%);
	animation: slide-in-left 900ms cubic-bezier(0.22,1,0.36,1) forwards;
}
.banner-inner .slider-right {
	right: 0;
	left: auto;
	transform: translateX(110%) translateY(-50%);
	animation: slide-in-right 900ms cubic-bezier(0.22,1,0.36,1) forwards;
}

@keyframes slide-in-left {
	from { transform: translateX(-110%) translateY(-50%); }
	to   { transform: translateX(0)     translateY(-50%); }
}
@keyframes slide-in-right {
	from { transform: translateX(110%) translateY(-50%); }
	to   { transform: translateX(0)    translateY(-50%); }
}

@media screen and (max-width: 900px) {
	.banner-inner .slider-item { display: none; }
	.image-contMain { width: 320px; height: 320px; }
	.banner-inner { min-height: 220px; }
}

/* ============================================================
   Row grid  (only columns actually used across all pages)
   ============================================================ */
.row {
	display: flex;
	flex-wrap: wrap;
	box-sizing: border-box;
	align-items: stretch;
	margin-top: 0;
	margin-left: -2em;
}
.row > * {
	box-sizing: border-box;
	padding: 0 0 0 2em;
}
.row.gtr-uniform > * > :last-child { margin-bottom: 0; }

.row.aln-left   { justify-content: flex-start; }
.row.aln-center { justify-content: center; }
.row.aln-right  { justify-content: flex-end; }
.row.aln-top    { align-items: flex-start; }
.row.aln-middle { align-items: center; }
.row.aln-bottom { align-items: flex-end; }

/* Used column widths */
.row > .col-6  { width: 50%; }
.row > .col-12 { width: 100%; }

/* Gutter variants in use */
.row.gtr-50               { margin-left: -1em; }
.row.gtr-50 > *           { padding: 0 0 0 1em; }
.row.gtr-50.gtr-uniform   { margin-top: -1em; }
.row.gtr-50.gtr-uniform > * { padding-top: 1em; }

.row.gtr-uniform          { margin-top: -2em; }
.row.gtr-uniform > *      { padding-top: 2em; }

/* Responsive column overrides */
@media screen and (max-width: 840px) {
	.row > .col-12-narrower { width: 100%; }
}
@media screen and (max-width: 480px) {
	.row > .col-12-mobilep  { width: 100%; }
	.row > .col-6           { width: 100%; }
}

/* ============================================================
   Container
   ============================================================ */
.container {
	margin: 0 auto;
	max-width: calc(100% - 5em);
	width: 60em;
}
.container.xsmall  { width: 15em; }
.container.small   { width: 30em; }
.container.medium  { width: 45em; }
.container.large   { width: 75em; }
.container.xlarge  { width: 90em; }
.container.max     { width: 100%; }

@media screen and (max-width: 840px) {
	.container { width: 100% !important; }
}
@media screen and (max-width: 736px) {
	.container { max-width: 100%; }
}

/* ============================================================
   Section / Article
   ============================================================ */
section.special, article.special { text-align: center; }

header p {
	color: #999;
	position: relative;
	margin: 0 0 1.5em 0;
	font-style: italic;
}
header h2 + p { font-size: 1.25em; margin-top: -1em;    line-height: 1.5em; }
header h3 + p { font-size: 1.1em;  margin-top: -0.85em; line-height: 1.5em; }
header h4 + p,
header h5 + p,
header h6 + p { font-size: 0.8em;  margin-top: -0.5em;  line-height: 1.5em; }

header.major { padding: 1em 0; text-align: center; }
header.major h2 { margin: 0; }
header.major p {
	display: inline-block;
	border-top: solid 2px #e5e5e5;
	color: #777;
	margin: 1.5em 0 0 0;
	padding: 1.5em 0 0 0;
	font-style: normal;
}

/* ============================================================
   Form  (contact.html)
   ============================================================ */
form { margin: 6em 0 4em 0; }

label {
	color: #646464;
	display: block;
	font-size: 0.9em;
	font-weight: 300;
	margin: 0 0 1em 0;
}

input[type="text"],
input[type="password"],
input[type="email"],
select,
textarea {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
	background-color: #f8f8f8;
	border-radius: 6px;
	border: solid 1px #8f8f8f;
	color: inherit;
	display: block;
	outline: 0;
	padding: 0 1em;
	text-decoration: none;
	width: 100%;
}

input[type="text"]:invalid,
input[type="password"]:invalid,
input[type="email"]:invalid,
select:invalid,
textarea:invalid { box-shadow: none; }

input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
select:focus,
textarea:focus {
	border-color: #94b0c2;
	box-shadow: 0 0 0 2px #94b0c2;
}

select {
	background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='40' preserveAspectRatio='none' viewBox='0 0 40 40'%3E%3Cpath d='M9.4,12.3l10.4,10.4l10.4-10.4c0.2-0.2,0.5-0.4,0.9-0.4c0.3,0,0.6,0.1,0.9,0.4l3.3,3.3c0.2,0.2,0.4,0.5,0.4,0.9 c0,0.4-0.1,0.6-0.4,0.9L20.7,31.9c-0.2,0.2-0.5,0.4-0.9,0.4c-0.3,0-0.6-0.1-0.9-0.4L4.3,17.3c-0.2-0.2-0.4-0.5-0.4-0.9 c0-0.4,0.1-0.6,0.4-0.9l3.3-3.3c0.2-0.2,0.5-0.4,0.9-0.4S9.1,12.1,9.4,12.3z' fill='%23e5e5e5' /%3E%3C/svg%3E");
	background-size: 1.25em;
	background-repeat: no-repeat;
	background-position: calc(100% - 1em) center;
	height: 3em;
	padding-right: 3em;
	text-overflow: ellipsis;
}
select option { color: #777; background-color: #f5f5f5; }
select:focus::-ms-value { background-color: transparent; }
select::-ms-expand { display: none; }

input[type="text"],
input[type="password"],
input[type="email"],
select { height: 3em; }

textarea { padding: 0.75em 1em; }

input[type="checkbox"],
input[type="radio"] {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
	display: block;
	float: left;
	margin-right: -2em;
	opacity: 0;
	width: 1em;
	z-index: -1;
}

input[type="checkbox"] + label,
input[type="radio"] + label {
	text-decoration: none;
	color: #777;
	cursor: pointer;
	display: inline-block;
	font-size: 1em;
	font-weight: 300;
	padding-left: 2.55em;
	padding-right: 0.75em;
	position: relative;
}

input[type="checkbox"] + label:before,
input[type="radio"] + label:before {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	display: inline-block;
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	line-height: 1;
	text-transform: none !important;
	font-family: 'Font Awesome 5 Free';
	font-weight: 900;
}

input[type="checkbox"] + label:before,
input[type="radio"] + label:before {
	background: #f8f8f8;
	border-radius: 6px;
	border: solid 1px #e5e5e5;
	content: '';
	display: inline-block;
	font-size: 0.8em;
	height: 2.25em;
	left: 0;
	line-height: 2.25em;
	position: absolute;
	text-align: center;
	top: 0;
	width: 2.25em;
}

input[type="checkbox"]:checked + label:before,
input[type="radio"]:checked + label:before {
	background: #666;
	border-color: #666;
	color: #ffffff;
	content: '\f00c';
}

input[type="checkbox"]:focus + label:before,
input[type="radio"]:focus + label:before {
	border-color: #e89980;
	box-shadow: 0 0 0 1px #e89980;
}

input[type="checkbox"] + label:before { border-radius: 6px; }
input[type="radio"]    + label:before { border-radius: 100%; }

::-webkit-input-placeholder { color: #999 !important; opacity: 1.0; }
:-moz-placeholder           { color: #999 !important; opacity: 1.0; }
::-moz-placeholder          { color: #999 !important; opacity: 1.0; }
:-ms-input-placeholder      { color: #999 !important; opacity: 1.0; }

/* ============================================================
   Box
   ============================================================ */
.box {
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 2px 0 0 #e5e5e5;
	margin: 0 0 2em 0;
	padding: 3em;
}
.box > :last-child { margin-bottom: 0; }

.box.alt {
	background: none !important;
	border-radius: 0 !important;
	box-shadow: none !important;
	margin: 0 0 2em 0;
	padding: 0 !important;
}

.box.features .features-row {
	border-top: solid 2px #e5e5e5;
	position: relative;
}
.box.features .features-row:after { clear: both; content: ''; display: block; }

.box.features .features-row section {
	float: left;
	padding: 3em;
	width: 50%;
}
.box.features .features-row section :last-child { margin-bottom: 0; }
.box.features .features-row section:nth-child(2n)  { padding-right: 0; }
.box.features .features-row section:nth-child(2n):before {
	background: #e5e5e5;
	content: '';
	display: block;
	height: 100%;
	margin-left: -3em;
	position: absolute;
	top: 0;
	width: 2px;
}
.box.features .features-row section:nth-child(2n-1) { padding-left: 0; }
.box.features .features-row:first-child { border-top: 0; }
.box.features .features-row:first-child section { padding-top: 0; }
.box.features .features-row:last-child  { padding-bottom: 0; }
.box.features .features-row:last-child  section { padding-bottom: 0; }

.box.special { text-align: center; }

/* Pull the first .box.special / .box over the banner */
#banner + section#main .box.special {
	margin-top: 0.5em;
	position: relative;
	z-index: 2;
}
#banner + section#main .box {
	margin-top: -4em;
	position: relative;
	z-index: 2;
}
@media screen and (max-width: 800px) {
	#banner + section#main .box.special,
	#banner + section#main .box { margin-top: 0; }
}

.box .image.featured {
	border-radius: 0;
	display: block;
	margin: 3em 0 3em -3em;
	position: relative;
	width: calc(100% + 6em);
}
.box .image.featured img { border-radius: 0; display: block; width: 100%; }

.box .image.featured:first-child {
	border-radius: 6px 6px 0 0;
	margin-bottom: 3em;
	margin-top: -3em;
}
.box .image.featured:first-child img { border-radius: 6px 6px 0 0; }

.box .image.featured:last-child {
	border-radius: 0 0 6px 6px;
	margin-bottom: -3em;
	margin-top: 3em;
}
.box .image.featured:last-child img { border-radius: 0 0 6px 6px; }

/* ============================================================
   Icon
   ============================================================ */
.icon {
	text-decoration: none;
	border-bottom: none;
	position: relative;
}
.icon:before {
	-moz-osx-font-smoothing: grayscale;
	-webkit-font-smoothing: antialiased;
	display: inline-block;
	font-style: normal;
	font-variant: normal;
	text-rendering: auto;
	line-height: inherit;
	text-transform: none !important;
	font-family: 'Font Awesome 5 Free';
	font-weight: 400;
}
.icon > .label { display: none; }
.icon.solid:before  { font-weight: 900; }
.icon.brands:before { font-family: 'Font Awesome 5 Brands'; }

.icon.major {
	background: #666;
	border-radius: 100%;
	color: #ffffff;
	cursor: default;
	display: inline-block;
	height: 5.5em;
	line-height: 5.5em;
	margin: 0 0 2em 0;
	width: 5.5em;
}
.icon.major:before    { font-size: 2.5em; }
.icon.major.accent1   { background: #666;    color: #ffffff; }
.icon.major.accent2   { background: #e89980; color: #ffffff; }
.icon.major.accent3   { background: #7fcdb8; color: #ffffff; }
.icon.major.accent4   { background: #94b0c2; color: #ffffff; }
.icon.major.accent5   { background: #e5cb95; color: #ffffff; }

/* ============================================================
   Image
   ============================================================ */
.image {
	border-radius: 6px;
	border: 0;
	display: inline-block;
	position: relative;
}
.image img { border-radius: 6px; display: block; }

.image.fit { display: block; margin: 0 0 2em 0; width: 100%; }
.image.fit img { display: block; width: 100%; }

/* ============================================================
   Lists
   ============================================================ */
ul {
	list-style: disc;
	margin: 0 0 2em 0;
	padding-left: 1em;
}
ul li { padding-left: 0.5em; }

ul.alt { list-style: none; padding-left: 0; }
ul.alt li { border-top: solid 1px #e5e5e5; padding: 0.5em 0; }
ul.alt li:first-child { border-top: 0; padding-top: 0; }

ul.icons { cursor: default; list-style: none; padding-left: 0; }
ul.icons li { display: inline-block; padding: 0 1.25em 0 0; }
ul.icons li:last-child { padding-right: 0; }
ul.icons li .icon { color: inherit; }
ul.icons li .icon:before { font-size: 1.75em; }

/* ============================================================
   Actions
   ============================================================ */
ul.actions {
	display: flex;
	cursor: default;
	list-style: none;
	margin-left: -1em;
	padding-left: 0;
}
ul.actions li { padding: 0 0 0 1em; vertical-align: middle; }

ul.actions.special {
	justify-content: center;
	width: 100%;
	margin-left: 0;
}
ul.actions.special li:first-child { padding-left: 0; }

ul.actions.stacked {
	flex-direction: column;
	margin-left: 0;
}
ul.actions.stacked li { padding: 1.3em 0 0 0; }
ul.actions.stacked li:first-child { padding-top: 0; }

ul.actions.fit { width: calc(100% + 1em); }
ul.actions.fit li { flex-grow: 1; flex-shrink: 1; width: 100%; }
ul.actions.fit li > * { width: 100%; }
ul.actions.fit.stacked { width: 100%; }

@media screen and (max-width: 480px) {
	ul.actions:not(.fixed) {
		flex-direction: column;
		margin-left: 0;
		width: 100% !important;
	}
	ul.actions:not(.fixed) li {
		flex-grow: 1;
		flex-shrink: 1;
		padding: 1em 0 0 0;
		text-align: center;
		width: 100%;
	}
	ul.actions:not(.fixed) li:first-child { padding-top: 0; }
	ul.actions:not(.fixed) li > * { width: 100%; }
	ul.actions:not(.fixed) li input[type="submit"],
	ul.actions:not(.fixed) li input[type="reset"],
	ul.actions:not(.fixed) li input[type="button"],
	ul.actions:not(.fixed) li button,
	ul.actions:not(.fixed) li .button { width: 100%; }
}

/* ============================================================
   Button
   ============================================================ */
input[type="submit"],
input[type="reset"],
input[type="button"],
.button {
	-moz-appearance: none;
	-webkit-appearance: none;
	-ms-appearance: none;
	appearance: none;
	-moz-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	-webkit-transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	transition: background-color 0.2s ease-in-out, color 0.2s ease-in-out;
	background-color: #666;
	border-radius: 6px;
	border: 0;
	color: #ffffff;
	cursor: pointer;
	display: inline-block;
	font-weight: 400;
	height: 3em;
	line-height: 3em;
	padding: 0 2em;
	text-align: center;
	text-decoration: none;
	white-space: nowrap;
}
input[type="submit"]:hover,
input[type="reset"]:hover,
input[type="button"]:hover,
.button:hover { background-color: #737373; }

input[type="submit"]:active,
input[type="reset"]:active,
input[type="button"]:active,
.button:active { background-color: #595959; }

.button.icon     { padding-left: 1.35em; }
.button.icon:before { margin-right: 0.5em; }

.button.fit   { width: 100%; }

.button.small {
	font-size: 0.8em;
	height: 2.7em;
	line-height: 2.7em;
}

.button.alt {
	background-color: transparent;
	box-shadow: inset 0 0 0 2px #e5e5e5;
	color: #777;
}
.button.alt:hover  { background-color: #f8f8f8; }
.button.alt:active { background-color: #f0f0f0; }
.button.alt.icon:before { color: #999; }

.button.primary { background-color: #e89980; color: #ffffff !important; }
.button.primary:hover  { background-color: #ecaa96; }
.button.primary:active { background-color: #e4886a; }

input[type="submit"].disabled, input[type="submit"]:disabled,
input[type="reset"].disabled,  input[type="reset"]:disabled,
input[type="button"].disabled, input[type="button"]:disabled,
.button.disabled, .button:disabled {
	background-color: #777 !important;
	box-shadow: inset 0 -0.15em 0 0 rgba(0,0,0,0.15);
	color: #f5f5f5 !important;
	cursor: default;
	opacity: 0.25;
}

/* ============================================================
   Header & Navigation
   ============================================================ */
#page-wrapper { padding-top: 3em; }
body.landing #page-wrapper { padding-top: 0; }

@keyframes reveal-header {
	0%   { top: -5em; }
	100% { top: 0; }
}

#header {
	background: #213b46;
	color: #bbb;
	cursor: default;
	height: 3.25em;
	left: 0;
	line-height: 3.25em;
	position: fixed;
	top: 0;
	width: 100%;
	z-index: 10000;
}

#header h1 {
	color: inherit;
	height: inherit;
	left: 1.25em;
	line-height: inherit;
	margin: 0;
	padding: 0;
	position: absolute;
	top: 0;
}
#header h1 a { color: #fff; font-weight: 400; border: 0; }

#header nav {
	height: inherit;
	line-height: inherit;
	position: absolute;
	right: 0.75em;
	top: 0;
	vertical-align: middle;
}
#header nav > ul { list-style: none; margin: 0; padding-left: 0; }
#header nav > ul > li { display: inline-block; padding-left: 0; }

#header nav > ul > li > a {
	display: inline-block;
	height: 2em;
	line-height: 1.95em;
	padding: 0 1.5em;
	font-size: 1.15em;
	border-radius: 6px;
	transition: background-color 0.25s ease, color 0.25s ease, transform 0.2s ease;
}
#header nav > ul > li > a.icon { padding: 0 1.75em; }
#header nav > ul > li > a:hover { transform: translateY(-1px); }

#header nav > ul > li > ul {
	display: block;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease, transform 0.25s ease, visibility 0.25s;
}
#header nav > ul > li:hover > ul {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

#header nav ul li ul li ul {
	top: 0;
	left: 100%;
	margin-left: 8px;
	transform: translateX(12px);
}
#header nav ul li ul li:hover > ul { transform: translateX(0); }

#header nav ul li ul::before {
	content: "";
	position: absolute;
	top: -10px;
	left: 0;
	width: 100%;
	height: 10px;
}
#header nav ul li ul li ul::before {
	content: "";
	position: absolute;
	left: -10px;
	top: 0;
	width: 10px;
	height: 100%;
}

#header nav > ul > li a:not(.button) {
	color: #fff;
	display: inline-block;
	text-decoration: none;
	border: 0;
}
#header nav > ul > li a:not(.button).icon:before { color: #999; margin-right: 0.5em; }
#header nav > ul > li:first-child { margin-left: 0; }
#header nav > ul > li.active a:not(.button) { background-color: rgba(153,153,153,0.25); }
#header nav > ul > li .button { margin: 0 0 0 0.5em; position: relative; }

#header input[type="submit"],
#header input[type="reset"],
#header input[type="button"],
#header .button {
	background-color: transparent;
	box-shadow: inset 0 0 0 2px #999;
	color: #fff;
}
#header input[type="submit"]:hover,
#header input[type="reset"]:hover,
#header input[type="button"]:hover,
#header .button:hover { background-color: rgba(153,153,153,0.25); }

#header input[type="submit"]:active,
#header input[type="reset"]:active,
#header input[type="button"]:active,
#header .button:active { background-color: rgba(153,153,153,0.5); }

#header .container { position: relative; }
#header .container h1 { left: 0; }
#header .container nav { right: 0; }

#header.reveal { animation: reveal-header 0.5s; }

#header.alt {
	animation: none;
	background: none;
	color: rgba(255,255,255,0.75);
	position: absolute;
}
#header.alt nav > ul > li a:not(.button).icon:before { color: rgba(255,255,255,0.75); }
#header.alt nav > ul > li.active a:not(.button) { background-color: rgba(255,255,255,0.2); }
#header.alt input[type="submit"],
#header.alt input[type="reset"],
#header.alt input[type="button"],
#header.alt .button { box-shadow: inset 0 0 0 2px rgba(255,255,255,0.5); }
#header.alt input[type="submit"]:hover,
#header.alt input[type="reset"]:hover,
#header.alt input[type="button"]:hover,
#header.alt .button:hover { background-color: rgba(255,255,255,0.1); }
#header.alt input[type="submit"]:active,
#header.alt input[type="reset"]:active,
#header.alt input[type="button"]:active,
#header.alt .button:active { background-color: rgba(255,255,255,0.2); }

/* Dropdown (dropotron) */
.dropotron {
	background: #fff;
	border-radius: 6px;
	box-shadow: 0 2px 0 0 rgba(0,0,0,0.065), inset 0 -1px 0 0 #fff, inset 0 0 0 1px rgba(229,229,229,0.5);
	list-style: none;
	margin: calc(-0.5em + 1px) 0 0 1px;
	padding: 0.5em 0;
	width: 11em;
}
.dropotron li { padding: 0; }
.dropotron li a, .dropotron li span {
	transition: none;
	border: 0;
	border-top: solid 1px #f2f2f2;
	color: inherit;
	display: block;
	padding: 0.15em 1em;
}
.dropotron li:first-child > a,
.dropotron li:first-child > span { border-top: 0; }
.dropotron li.active > a,
.dropotron li.active > span,
.dropotron li:hover > a,
.dropotron li:hover > span { background: #94b0c2; color: #ffffff; }

.dropotron.level-0 { font-size: 0.9em; margin: 1em 0 0 0; }
.dropotron.level-0:before {
	transform: rotate(45deg);
	background: #fff;
	border: solid 1px rgba(229,229,229,0.5);
	border-bottom: 0;
	border-right: 0;
	box-shadow: -0.25em -0.125em 0.125em 0 rgba(0,0,0,0.015);
	content: '';
	display: block;
	height: 0.75em;
	position: absolute;
	right: 1.25em;
	top: -0.375em;
	width: 0.75em;
	z-index: 0;
}

/* ============================================================
   Banner
   ============================================================ */
#banner {
	background-attachment: fixed;
	background-color: #383d43;
	background-image: url("../../images/78070.webp");
	background-position: center center;
	background-repeat: no-repeat;
	background-size: cover;
	color: #fff;
	padding: 12em 0 20em 0;
	text-align: center;
}

/* Page-specific banner images */
body.page-contact #banner  { background: none; padding: 0; text-align: left; color: inherit; }
body.page-partners #banner { background-image: url("../../images/banner-partners.webp"); }

#banner :last-child { margin-bottom: 0; }

#banner h2, #banner h3, #banner h4, #banner h5, #banner h6 { color: #fff; }
#banner h2 { font-size: 3.5em; line-height: 1em; margin: 0 0 0.5em 0; padding: 0; }
#banner p  { font-size: 1.25em; margin-bottom: 1.75em; }

#banner input[type="submit"],
#banner input[type="reset"],
#banner input[type="button"],
#banner .button {
	background-color: transparent;
	box-shadow: inset 0 0 0 2px rgba(255,255,255,0.5);
	color: #fff;
	min-width: 12em;
}
#banner input[type="submit"]:hover,
#banner input[type="reset"]:hover,
#banner input[type="button"]:hover,
#banner .button:hover { background-color: rgba(255,255,255,0.1); }
#banner input[type="submit"]:active,
#banner input[type="reset"]:active,
#banner input[type="button"]:active,
#banner .button:active { background-color: rgba(255,255,255,0.2); }
#banner .button.primary { background: #fff; color: #666 !important; }

/* ============================================================
   Main
   ============================================================ */
#main { padding: 4em 0; }
#main > header { text-align: center; margin: 0 0 3em 0; }
#main > header h2 { font-size: 2.75em; margin: 0; }
#main > header p {
	border-top: solid 2px #e5e5e5;
	color: #777;
	display: inline-block;
	font-style: normal;
	margin: 1em 0 0 0;
	padding: 1em 0 1.25em 0;
}
body.landing #main { margin-top: -14em; }

/* ============================================================
   Footer
   ============================================================ */
#footer {
	background: #f0f0f0;
	padding: 2em 0 3em 0;
	text-align: center;
}
#footer .icons a {
	transition: opacity 0.2s ease-in-out;
	opacity: 0.35;
}
#footer .icons a:hover { opacity: 0.75; }
#footer .copyright {
	color: #999;
	font-size: 0.9em;
	line-height: 1em;
	margin: 2em 0 0 0;
	padding: 0;
	text-align: center;
}
#footer .copyright a { color: inherit; }
#footer .copyright li {
	border-left: solid 1px #dddddd;
	display: inline-block;
	list-style: none;
	margin-left: 1em;
	padding-left: 1em;
}
#footer .copyright li:first-child {
	border-left: 0;
	margin-left: 0;
	padding-left: 0;
}

/* ============================================================
   CTA  (contact info + form section)
   ============================================================ */
#cta {
	background: #94b0c2;
	color: #ffffff;
	padding: 3.5em 0 4em 0;
	text-align: center;
}
#cta h2, #cta h3, #cta h4, #cta h5, #cta h6 { color: inherit; }
#cta form { margin: 0 auto; max-width: 100%; width: 25em; }

#cta input[type="submit"],
#cta input[type="reset"],
#cta input[type="button"],
#cta .button { box-shadow: none; background: #fff; color: #666; }

#cta .buttonBP { box-shadow: none; background: #b6b5b5; color: #d37231; }

#cta input[type="text"],
#cta input[type="password"],
#cta input[type="email"],
#cta select,
#cta textarea {
	color: #ffffff;
	background: rgba(255,255,255,0.15);
	border: 0;
}
#cta input[type="text"]:focus,
#cta input[type="password"]:focus,
#cta input[type="email"]:focus,
#cta select:focus,
#cta textarea:focus { box-shadow: inset 0 0 0 2px #fff; }

#cta ::-webkit-input-placeholder { color: rgba(255,255,255,0.75) !important; }
#cta :-moz-placeholder           { color: rgba(255,255,255,0.75) !important; }
#cta ::-moz-placeholder          { color: rgba(255,255,255,0.75) !important; }
#cta :-ms-input-placeholder      { color: rgba(255,255,255,0.75) !important; }
#cta .formerize-placeholder      { color: rgba(255,255,255,0.75) !important; }

/* CTA flex layout (contact info left, form right) */
#cta .container { padding: 0 4.5em; }

#cta .cta-flex {
	display: flex;
	flex-wrap: wrap;
	justify-content: space-between;
	align-items: center;
	gap: 20px;
	padding: 2em 0;
}

#cta .contact-info {
	flex: 0 0 350px;
	background: #f0f0f0;
	padding: 20px;
	border-radius: 5px;
	box-shadow: 0 6px 6px rgba(0,0,0,0.1);
}

#cta .existing-content {
	flex: 1;
	padding: 0 3em;
	margin-left: 5%;
}

.contact-item {
	display: flex;
	align-items: center;
	margin-bottom: 15px;
	font-size: 16px;
	color: #5e5e5e;
}
.contact-item .flag-icon {
	width: 24px;
	height: 16px;
	margin-right: 10px;
	border-radius: 3px;
	object-fit: cover;
}
.contact-item a { color: #5e5e5e; text-decoration: none; }
.contact-item a:hover { text-decoration: underline; }

@media screen and (max-width: 768px) {
	#cta .cta-flex { flex-direction: column; align-items: center; }
	#cta .contact-info,
	#cta .existing-content { flex: 1 1 100%; max-width: 100%; }
}

/* ============================================================
   Responsive — Wide  (≤ 1680px)
   ============================================================ */
@media screen and (max-width: 1680px) {
	body, input, select, textarea { font-size: 13pt; }
	#banner { padding: 8em 0 18em 0; }
}

/* ============================================================
   Responsive — Normal  (≤ 1280px)
   ============================================================ */
@media screen and (max-width: 1280px) {
	body, input, select, textarea { font-size: 11pt; }
	.dropotron.level-0 { font-size: 1em; }
	#banner { background-attachment: scroll; }
	#banner h2 { font-size: 3.5em; }
}

/* ============================================================
   Responsive — Narrow  (≤ 980px)
   ============================================================ */
@media screen and (max-width: 980px) {
	body, input, select, textarea { font-size: 11pt; }
}

/* ============================================================
   Responsive — Narrower  (≤ 840px)  mobile nav panel activates
   ============================================================ */
#navPanel, #navButton { display: none; }

@media screen and (max-width: 840px) {

	html, body { overflow-x: hidden; }
	body, input, select, textarea { font-size: 11pt; }
	h2 br, h3 br, h4 br, h5 br, h6 br { display: none; }

	header br { display: none; }
	header.major { padding: 0 4em; }

	.box { padding: 3em 2em; }
	.box.features > section { padding: 3em 2em; }
	.box .image.featured { margin-left: -2em; width: calc(100% + 4em); }
	.box .image.featured:first-child { margin-bottom: 3em; margin-top: -3em; }
	.box .image.featured:last-child  { margin-bottom: -3em; margin-top: 3em; }

	#page-wrapper {
		padding-top: 0;
		backface-visibility: hidden;
		-webkit-backface-visibility: hidden;
		transition: transform 0.5s ease;
		-webkit-transition: -webkit-transform 0.5s ease;
		padding-bottom: 1px;
	}

	#header { display: none; }

	#navButton {
		backface-visibility: hidden;
		-webkit-backface-visibility: hidden;
		transition: transform 0.5s ease;
		-webkit-transition: -webkit-transform 0.5s ease;
		display: block;
		height: 44px;
		left: 0;
		position: fixed;
		top: 0;
		width: 100%;
		z-index: 10001;
	}
	#navButton .toggle {
		text-decoration: none;
		height: 100%;
		left: 0;
		position: absolute;
		top: 0;
		width: 100%;
		border: 0;
		outline: 0;
	}
	#navButton .toggle:before {
		-moz-osx-font-smoothing: grayscale;
		-webkit-font-smoothing: antialiased;
		display: inline-block;
		font-style: normal;
		font-variant: normal;
		text-rendering: auto;
		line-height: 1;
		text-transform: none !important;
		font-family: 'Font Awesome 5 Free';
		font-weight: 900;
		background: rgba(192,192,192,0.75);
		border-radius: 6px;
		color: #fff;
		content: '\f0c9';
		display: block;
		font-size: 16px;
		height: 2.25em;
		left: 0.5em;
		line-height: 2.25em;
		position: absolute;
		text-align: center;
		top: 0.5em;
		width: 3.5em;
	}

	#navPanel {
		backface-visibility: hidden;
		-webkit-backface-visibility: hidden;
		transform: translateX(-275px);
		-webkit-transform: translateX(-275px);
		transition: transform 0.5s ease;
		-webkit-transition: -webkit-transform 0.5s ease;
		display: block;
		height: 100%;
		left: 0;
		overflow-y: auto;
		position: fixed;
		top: 0;
		width: 275px;
		z-index: 10002;
		background: #2b2b2b;
		color: #bbb;
	}
	#navPanel .link {
		border-bottom: 0;
		border-top: solid 1px rgba(255,255,255,0.05);
		color: #bbb;
		display: block;
		height: 44px;
		line-height: 44px;
		padding: 0 1em;
		text-decoration: none;
	}
	#navPanel .link:first-child  { border-top: 0; }
	#navPanel .link.depth-0      { color: #fff; }
	#navPanel .link .indent-1    { display: inline-block; width: 1em; }
	#navPanel .link .indent-2    { display: inline-block; width: 2em; }
	#navPanel .link .indent-3    { display: inline-block; width: 3em; }
	#navPanel .link .indent-4    { display: inline-block; width: 4em; }
	#navPanel .link .indent-5    { display: inline-block; width: 5em; }

	body.navPanel-visible #page-wrapper,
	body.navPanel-visible #navButton  { transform: translateX(275px); -webkit-transform: translateX(275px); }
	body.navPanel-visible #navPanel   { transform: translateX(0);     -webkit-transform: translateX(0); }
}

/* ============================================================
   Responsive — Mobile  (≤ 736px)
   ============================================================ */
@media screen and (max-width: 736px) {

	body, input, select, textarea { font-size: 11pt; }

	h2 { font-size: 1.75em; line-height: 1.35em; letter-spacing: -0.025em; }
	h3 { font-size: 1.5em; }
	h4 { font-size: 1em; }

	header.major { padding: 1em; }
	header.major h2, header.major p { padding-left: 0.5em; padding-right: 0.5em; }

	.box { margin: 1em; overflow-x: hidden; padding: 2em 2em !important; }
	.box.features .features-row { border-top: 0; padding: 0; }
	.box.features .features-row section {
		border: 0;
		border-top: solid 1px #e5e5e5 !important;
		float: none;
		margin: 2em 0 0 0 !important;
		padding: 2em 0 0 0 !important;
		width: 100%;
	}
	.box.features .features-row:first-child section:first-child {
		border-top: 0 !important;
		margin-top: 0 !important;
		padding-top: 0 !important;
	}
	.box .image.featured { margin-left: -2em; width: calc(100% + 4em); }
	.box .image.featured:first-child { margin-bottom: 2em; margin-top: -2em; }
	.box .image.featured:last-child  { margin-bottom: -2em; margin-top: 2em; }

	#banner { padding: 4em 0; }
	#banner h2 { font-size: 2.25em; }
	#banner p  { font-size: 1.25em; }

	#main { padding: 4em 0 0 0; }
	#main > header { margin: 0 2em 1.5em 2em; }
	#main > header h2 { font-size: 2em; }
	#main > header p  { font-size: 1em; padding-bottom: 1em; }
	body.landing #main { padding: 0; margin-top: 0; }

	#footer { padding: 4em 0; }
	#footer .copyright li {
		border-left: 0;
		display: block;
		line-height: 2em;
		margin-left: 0;
		padding-left: 0;
	}
}

/* ============================================================
   Responsive — Mobile Portrait  (≤ 480px)
   ============================================================ */
@media screen and (max-width: 480px) {

	html, body { min-width: 320px; }
	body, input, select, textarea { font-size: 11pt; }

	header.major { padding: 0; }

	ul.actions { margin: 0 0 2em 0; }
	ul.actions li { display: block; padding: 1em 0 0 0; text-align: center; width: 100%; }
	ul.actions li:first-child { padding-top: 0; }
	ul.actions li > * { width: 100%; margin: 0 !important; }
	ul.actions li > *.icon:before { margin-left: -2em; }
	ul.actions.small li { padding: 0.5em 0 0 0; }
	ul.actions.small li:first-child { padding-top: 0; }

	.box { border-radius: 0; box-shadow: none; margin: 1em 0 0 0; padding: 3em 1em !important; }
	.box.features .features-row section { margin: 3em 0 0 0 !important; padding: 3em 0 0 0 !important; }
	.box .image.featured { border-radius: 0; margin-left: -1em; width: calc(100% + 2em); }
	.box .image.featured img { border-radius: 0 !important; }
	.box .image.featured:first-child { margin-bottom: 3em; margin-top: -3em; }
	.box .image.featured:last-child  { margin-bottom: -3em; margin-top: 3em; }

	#banner { padding: 5em 3em 4em 3em; }
	#main > .box:first-child { margin-top: 0; }
	#cta { padding: 2.5em 1em 3em 1em; }
}

/* ============================================================
   Clients page
   ============================================================ */
#clients {
	background: #fff;
	padding: 4em 0;
}
#clients .major { text-align: center; margin-bottom: 3em; }
#clients .major h2 { font-size: 2.5em; color: #646464; margin-bottom: 0.5em; }
#clients .major p  { color: #999; font-size: 1.1em; }

.client-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 2.5em;
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 2em;
}

.client-logo {
	background: #ffffff;
	border: 1px solid #e5e5e5;
	border-radius: 12px;
	padding: 2.5em 2em;
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 150px;
	transition: all 0.3s ease;
	position: relative;
	overflow: hidden;
}
.client-logo::before {
	content: '';
	position: absolute;
	top: 0; left: 0;
	width: 100%; height: 100%;
	background: linear-gradient(135deg, #94b0c2 0%, #e89980 100%);
	opacity: 0;
	transition: opacity 0.3s ease;
	z-index: 0;
}
.client-logo:hover { transform: translateY(-8px); box-shadow: 0 12px 24px rgba(0,0,0,0.1); border-color: #94b0c2; }
.client-logo:hover::before { opacity: 0.03; }

.client-logo img {
	max-width: 100%;
	height: auto;
	max-height: 100px;
	object-fit: contain;
	transition: all 0.3s ease;
	position: relative;
	z-index: 1;
}
.client-logo:hover img { filter: brightness(1.1); transform: scale(1.05); }

@media screen and (max-width: 1280px) {
	.client-grid { grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 2em; }
}
@media screen and (max-width: 980px) {
	.client-grid { grid-template-columns: repeat(2, 1fr); gap: 1.5em; padding: 0 1.5em; }
	.client-logo { padding: 2em 1.5em; min-height: 130px; }
	#clients .major h2 { font-size: 2em; }
}
@media screen and (max-width: 736px) {
	#clients { padding: 3em 0; }
	.client-grid { grid-template-columns: 1fr; gap: 1.5em; padding: 0 1em; }
	.client-logo { padding: 2em 1.5em; min-height: 120px; }
	.client-logo img { max-height: 80px; }
	#clients .major h2 { font-size: 1.75em; }
	#clients .major p  { font-size: 1em; }
}
@media screen and (max-width: 480px) {
	.client-logo { padding: 1.5em 1em; min-height: 100px; }
	.client-logo img { max-height: 70px; }
}

/* ============================================================
   .image.featured — hover animations (all pages)
   ============================================================ */

/* Clip zoom + shine/overlay within the image bounds */
.box .image.featured {
	overflow: hidden;
}

/* Smooth image zoom on card hover */
.box .image.featured img {
	transition: transform 0.55s cubic-bezier(0.25, 0.46, 0.45, 0.94),
	            filter 0.55s ease;
	will-change: transform;
}

.box.special:hover .image.featured img {
	transform: scale(1.07);
	filter: brightness(1.07) saturate(1.12);
}

/* Brand-gradient color wash overlay — fades in on hover */
.box .image.featured::after {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(
		135deg,
		rgba(33, 59, 70, 0)    0%,
		rgba(232, 153, 128, 0) 100%
	);
	transition: background 0.55s ease;
	pointer-events: none;
	z-index: 1;
}

.box.special:hover .image.featured::after {
	background: linear-gradient(
		135deg,
		rgba(33, 59, 70, 0.22)    0%,
		rgba(232, 153, 128, 0.25) 100%
	);
}

/* White light shine that sweeps left → right on hover */
.box .image.featured::before {
	content: '';
	position: absolute;
	top: 0;
	left: -100%;
	width: 60%;
	height: 100%;
	background: linear-gradient(
		105deg,
		rgba(255, 255, 255, 0)    0%,
		rgba(255, 255, 255, 0.28) 50%,
		rgba(255, 255, 255, 0)    100%
	);
	transform: skewX(-20deg);
	z-index: 2;
	pointer-events: none;
}

@keyframes img-shine {
	from { left: -100%; }
	to   { left: 130%;  }
}

.box.special:hover .image.featured::before {
	animation: img-shine 0.65s ease-out forwards;
}

/* ============================================================
   Feature icons — float, pulse-ring, hover  (index.html)
   ============================================================ */

@keyframes icon-float {
	0%, 100% { transform: translateY(0)    scale(1);    }
	50%       { transform: translateY(-8px) scale(1.04); }
}

@keyframes icon-ring {
	0%   { transform: scale(1);   opacity: 0.65; }
	80%  { transform: scale(1.8); opacity: 0;    }
	100% { transform: scale(1.8); opacity: 0;    }
}

/* Section hover: subtle tint */
.box.features .features-row section {
	border-radius: 8px;
	transition: background 0.35s ease;
}
.box.features .features-row section:hover {
	background: rgba(148, 176, 194, 0.08);
}

/* Icon: float animation + smooth hover transition */
.box.features .icon.major {
	position: relative;
	animation: icon-float 3.2s ease-in-out infinite;
	transition: transform 0.45s cubic-bezier(0.34, 1.56, 0.64, 1),
	            filter 0.35s ease;
}

/* Expanding pulse ring */
.box.features .icon.major::after {
	content: '';
	position: absolute;
	inset: 0;
	border-radius: 50%;
	border: 3px solid rgba(255, 255, 255, 0.55);
	pointer-events: none;
	animation: icon-ring 3.2s ease-out infinite;
}

/* Stagger: 4 icons × 0.8 s = one full 3.2 s cycle */
.box.features .features-row:first-child  section:nth-child(1) .icon.major,
.box.features .features-row:first-child  section:nth-child(1) .icon.major::after { animation-delay: 0s;   }

.box.features .features-row:first-child  section:nth-child(2) .icon.major,
.box.features .features-row:first-child  section:nth-child(2) .icon.major::after { animation-delay: 0.8s; }

.box.features .features-row:last-child   section:nth-child(1) .icon.major,
.box.features .features-row:last-child   section:nth-child(1) .icon.major::after { animation-delay: 1.6s; }

.box.features .features-row:last-child   section:nth-child(2) .icon.major,
.box.features .features-row:last-child   section:nth-child(2) .icon.major::after { animation-delay: 2.4s; }

/* Hover: freeze float, scale + tilt + drop-shadow glow */
.box.features .features-row section:hover .icon.major {
	animation: none;
	transform: translateY(-14px) scale(1.2) rotate(12deg);
	filter: brightness(1.18) drop-shadow(0 14px 28px rgba(0, 0, 0, 0.32));
}
.box.features .features-row section:hover .icon.major::after {
	animation: none;
	opacity: 0;
}

/* Respect reduced-motion preference */
@media (prefers-reduced-motion: reduce) {
	.box.features .icon.major,
	.box.features .icon.major::after { animation: none; }
	.box.features .features-row section:hover .icon.major {
		transform: scale(1.1);
		filter: brightness(1.1);
	}
}

/* ============================================================
   FAQs page
   ============================================================ */

/* Banner — logo left, heading right, no side-sliders */
.faq-banner-inner {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 3.5em;
	min-height: 300px;
	padding: 3em 2em;
}

.faq-logo {
	height: 340px;
	width: auto;
	display: block;
	flex-shrink: 0;
}

.faq-banner-text { max-width: 520px; }

.faq-banner-text h2 {
	font-size: 3em;
	font-weight: 900;
	color: #ffffff;
	line-height: 1.15em;
	letter-spacing: -0.02em;
	margin: 0 0 0.4em 0;
}

.faq-banner-text p {
	color: rgba(255, 255, 255, 0.85);
	font-size: 1.1em;
	margin: 0;
	font-style: normal;
}

/* Accordion list */
.faq-list {
	max-width: 750px;
	margin: 0 auto;
}

details.faq-item {
	background: #ffffff;
	border: 1.5px solid #e0e0e0;
	border-radius: 50px;
	margin-bottom: 1em;
	overflow: hidden;
	transition: border-color 0.3s ease, border-radius 0.3s ease;
}

details.faq-item[open] {
	border-color: #e89980;
	border-radius: 20px;
}

details.faq-item > summary {
	display: flex;
	align-items: center;
	gap: 1em;
	padding: 1em 1.5em;
	cursor: pointer;
	list-style: none;
	-webkit-user-select: none;
	user-select: none;
	outline: none;
}

details.faq-item > summary::-webkit-details-marker { display: none; }
details.faq-item > summary::marker { display: none; }

.faq-toggle {
	flex-shrink: 0;
	width: 2.4em;
	height: 2.4em;
	border-radius: 50%;
	background: #213b46;
	color: #ffffff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1.5em;
	font-weight: 300;
	line-height: 1;
	transition: background 0.25s ease;
}

.faq-toggle::before { content: '+'; display: block; }

details.faq-item[open] .faq-toggle { background: #e89980; }
details.faq-item[open] .faq-toggle::before { content: '\2212'; }

.faq-question-text {
	font-size: 1em;
	font-weight: 600;
	color: #213b46;
	transition: color 0.25s ease;
	line-height: 1.4;
}

details.faq-item[open] .faq-question-text { color: #e89980; }

.faq-answer {
	padding: 0.2em 1.5em 1.4em calc(2.4em + 2em);
	color: #555555;
	line-height: 1.75em;
	font-size: 0.95em;
}

.faq-answer p { margin: 0; }

details.faq-item:not([open]):hover {
	border-color: #94b0c2;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.07);
}

/* FAQ responsive */
@media screen and (max-width: 840px) {
	.faq-banner-inner { gap: 2em; }
	.faq-logo { height: 180px; }
	.faq-banner-text h2 { font-size: 2.2em; }
}

@media screen and (max-width: 736px) {
	.faq-banner-inner {
		flex-direction: column;
		text-align: center;
		gap: 1.2em;
		padding: 2.5em 1em;
	}
	.faq-logo { height: 150px; }
	.faq-banner-text h2 { font-size: 1.9em; }
	.faq-answer { padding-left: 1.5em; }
}

@media screen and (max-width: 480px) {
	.faq-logo { height: 120px; }
	.faq-banner-text h2 { font-size: 1.6em; }
	.faq-toggle { width: 2em; height: 2em; font-size: 1.2em; }
	.faq-question-text { font-size: 0.95em; }
}

/* Equal-height featured images in paired card rows */
.row-equal-img .image.featured {
	height: 280px;
	overflow: hidden;
}
.row-equal-img .image.featured img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ============================================================
   Info Overlay  (three-dot ⋮ panel)
   ============================================================ */

/* The ⋮ trigger button in the header nav */
.dots-item { display: inline-block; vertical-align: top; }

.dots-btn {
	background: transparent;
	border: none;
	color: rgba(255, 255, 255, 0.75);
	font-size: 1.1em;
	cursor: pointer;
	padding: 0 0.65em;
	height: 3.25em;
	line-height: 3.25em;
	display: inline-block;
	vertical-align: top;
	transition: color 0.2s ease;
	outline: none;
	margin-left: 0.25em;
}
.dots-btn:hover { color: #ffffff; }

/* Full-screen dark overlay */
.info-overlay {
	position: fixed;
	inset: 0;
	background: rgba(10, 10, 10, 0.97);
	z-index: 99999;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.35s ease, visibility 0.35s ease;
	overflow-y: auto;
}

.info-overlay.is-open {
	opacity: 1;
	visibility: visible;
}

.info-overlay-inner {
	display: flex;
	flex-direction: column;
	min-height: 100%;
	padding: 2.5em 6em;
	max-width: 1400px;
	width: 100%;
	margin: 0 auto;
}

/* Top bar: brand logo + close button */
.info-overlay-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding-bottom: 2em;
	border-bottom: 1px solid rgba(255, 255, 255, 0.1);
	margin-bottom: 3.5em;
}

.info-overlay-brand {
	display: flex;
	align-items: center;
	gap: 0.75em;
	text-decoration: none;
	border: 0;
}

.info-overlay-brand img {
	height: 85px;
	width: auto;
}

.info-overlay-brand span {
	color: #ffffff;
	font-size: 1.05em;
	font-weight: 400;
	letter-spacing: 0.06em;
	text-transform: uppercase;
}

.info-overlay-close {
	background: transparent;
	border: none;
	color: rgba(255, 255, 255, 0.6);
	font-size: 0.95em;
	letter-spacing: 0.1em;
	cursor: pointer;
	display: flex;
	align-items: center;
	gap: 0.4em;
	transition: color 0.2s;
	outline: none;
}
.info-overlay-close:hover { color: #ffffff; }
.info-overlay-close span { font-size: 1.5em; line-height: 1; }

/* Content: left text | vertical line | right contact */
.info-overlay-body {
	display: flex;
	flex: 1;
	align-items: flex-start;
}

.info-overlay-left {
	flex: 2;
	padding-right: 5em;
	color: rgba(255, 255, 255, 0.75);
	line-height: 1.95em;
	opacity: 0;
}

.info-overlay.is-open .info-overlay-left {
	animation: overlayFadeUp 0.55s ease 0.15s forwards;
}

.info-overlay-left p { margin-bottom: 1.4em; font-size: 1em; }
.info-overlay-left p:last-child { margin-bottom: 0; }

.info-overlay-divider {
	width: 1px;
	background: rgba(255, 255, 255, 0.15);
	align-self: stretch;
	flex-shrink: 0;
	margin: 0 4em;
}

.info-overlay-right {
	flex: 1;
	color: rgba(255, 255, 255, 0.75);
	opacity: 0;
}

.info-overlay.is-open .info-overlay-right {
	animation: overlayFadeUp 0.55s ease 0.3s forwards;
}

.info-overlay-right h3 {
	color: #ffffff;
	font-size: 0.8em;
	font-weight: 700;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	margin-bottom: 1.5em;
	line-height: 1;
}

.info-overlay-right p {
	margin-bottom: 0.5em;
	font-size: 0.95em;
	line-height: 1.75em;
}

@keyframes overlayFadeUp {
	from { opacity: 0; transform: translateY(18px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Overlay responsive */
@media screen and (max-width: 1280px) {
	.info-overlay-inner { padding: 2.5em 4em; }
}

@media screen and (max-width: 980px) {
	.info-overlay-inner { padding: 2em 3em; }
	.info-overlay-left { padding-right: 3em; }
	.info-overlay-divider { margin: 0 2.5em; }
}

@media screen and (max-width: 736px) {
	.info-overlay-inner { padding: 1.5em 1.5em; }
	.info-overlay-body { flex-direction: column; }
	.info-overlay-left { padding-right: 0; margin-bottom: 2.5em; flex: none; width: 100%; }
	.info-overlay-divider { display: none; }
	.info-overlay-right { flex: none; width: 100%; }
}

/* ============================================================
   Contact page revamp
   ============================================================ */

/* Split banner: dark-purple left / image right */
.contact-split {
	display: flex;
	min-height: 460px;
	overflow: hidden;
}

.contact-split-left {
	flex: 1;
	background-color: #000000;
	position: relative;
	display: flex;
	align-items: center;
	padding: 4em 5em;
	overflow: hidden;
}

/* Dot pattern */
.contact-split-left::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: radial-gradient(rgba(255,255,255,0.1) 1px, transparent 1px);
	background-size: 22px 22px;
	pointer-events: none;
	z-index: 0;
}

/* Purple glow accent */
.contact-split-left::after {
	content: '';
	position: absolute;
	top: 10%;
	left: -15%;
	width: 65%;
	height: 70%;
	border-radius: 50%;
	background: radial-gradient(ellipse, rgba(110,50,200,0.4) 0%, transparent 70%);
	pointer-events: none;
	z-index: 0;
}

.contact-split-text {
	position: relative;
	z-index: 1;
	max-width: 500px;
}

.contact-split-text h2 {
	font-size: 3.75em;
	font-weight: 900;
	color: #ffffff;
	line-height: 1.05;
	letter-spacing: -0.025em;
	margin: 0 0 0.45em 0;
}

.contact-split-text .contact-subtitle {
	color: rgba(255, 255, 255, 0.7);
	font-size: 1em;
	line-height: 1.75;
	margin: 0 0 2.5em 0;
	font-style: normal;
	max-width: 380px;
}

.contact-breadcrumb {
	display: flex;
	align-items: center;
	gap: 0.5em;
	font-size: 0.85em;
	font-weight: 600;
	letter-spacing: 0.03em;
}

.contact-breadcrumb a {
	color: rgba(255, 255, 255, 0.5);
	text-decoration: none;
	border: 0;
	transition: color 0.2s;
}
.contact-breadcrumb a:hover     { color: #ffffff; }
.contact-breadcrumb .bc-sep     { color: rgba(255, 255, 255, 0.3); }
.contact-breadcrumb .bc-current { color: rgba(255, 255, 255, 0.9); font-weight: 700; }

.contact-split-right {
	flex: 1;
	overflow: hidden;
}

.contact-split-right img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Contact cards */
.contact-cards-section {
	padding: 5em 0 4em;
}

.contact-cards-row {
	display: flex;
	gap: 3em;
	justify-content: center;
	flex-wrap: wrap;
}

.contact-card {
	background: #ffffff;
	border-radius: 22px;
	padding: 3em 2.5em 2.5em;
	text-align: center;
	width: 280px;
	border: 2px solid transparent;
	box-shadow: 0 6px 24px rgba(0, 0, 0, 0.07);
	transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
	position: relative;
	overflow: hidden;
	cursor: default;
}

/* Cream blob decoration behind each card */
.contact-card::before {
	content: '';
	position: absolute;
	bottom: -50px;
	left: -40px;
	width: 170px;
	height: 170px;
	border-radius: 50%;
	background: #fdf3ee;
	z-index: 0;
	transition: transform 0.35s ease;
}

.contact-card:hover {
	border-color: #e85d7c;
	box-shadow: 0 18px 50px rgba(232, 93, 124, 0.18);
	transform: translateY(-8px);
}

.contact-card:hover::before { transform: scale(1.5); }

.contact-card-inner {
	position: relative;
	z-index: 1;
}

.contact-icon-wrap {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 1.5em;
	font-size: 2em;
	transition: transform 0.3s ease;
}

.contact-card:hover .contact-icon-wrap { transform: scale(1.08); }

.contact-icon-wrap.gradient {
	background: linear-gradient(135deg, #e85d7c 0%, #e89980 100%);
	color: #ffffff;
}

.contact-icon-wrap.outlined {
	background: #ffffff;
	border: 2.5px solid #e85d7c;
	color: #e85d7c;
}

.contact-card h3 {
	font-size: 1.05em;
	font-weight: 700;
	color: #1a1a2e;
	margin: 0 0 0.65em 0;
	line-height: 1;
}

.contact-card p {
	color: #888888;
	font-size: 0.9em;
	margin: 0 0 0.25em 0;
	line-height: 1.6;
}

.contact-card a {
	color: #888888;
	text-decoration: none;
	border: 0;
	transition: color 0.2s;
}
.contact-card:hover a { color: #e85d7c; }

/* Contact responsive */
@media screen and (max-width: 980px) {
	.contact-split-left { padding: 3em 3em; }
	.contact-split-text h2 { font-size: 3em; }
}

@media screen and (max-width: 840px) {
	.contact-split { flex-direction: column; }
	.contact-split-right { flex: none; min-height: 240px; max-height: 280px; }
	.contact-split-left { padding: 3em 2.5em; }
	.contact-split-text h2 { font-size: 2.5em; }
	.contact-split-text .contact-subtitle { max-width: 100%; }
}

@media screen and (max-width: 736px) {
	.contact-split-text h2 { font-size: 2em; }
	.contact-split-right { min-height: 180px; }
	.contact-cards-row { flex-direction: column; align-items: center; }
	.contact-card { width: 100%; max-width: 320px; }
}

@media screen and (max-width: 480px) {
	.contact-split-left { padding: 2.5em 1.5em; }
	.contact-split-text h2 { font-size: 1.75em; }
}
