/* =========================================================
   ADSI SHARED VARIABLES
   About + Services
   ========================================================= */

:root {
	--adsi-red: #de352c;
	--adsi-orange: #e65f27;
	--adsi-yellow: #fcb61c;

	--adsi-black: #111111;
	--adsi-dark: #181818;

	--adsi-grey: #8e8e8e;
	--adsi-text: #706b67;

	--adsi-border: #dedbd7;
	--adsi-light-border: #e6ddd8;

	--adsi-white: #ffffff;
}


/* =========================================================
   01. ADSI ABOUT SECTION
   ========================================================= */

.adsi-about {
	position: relative;

	padding: 45px 0 90px;

	overflow: hidden;
}


/* Container */

.adsi-about > .container {
	width: 100%;
	max-width: 1440px;

	margin: 0 auto;

	padding-left: 48px;
	padding-right: 48px;
}


/* =========================================================
   ABOUT GRID
   ========================================================= */

.adsi-about .adsi-about-grid {
	display: grid;

	grid-template-columns: 41% 59%;
	align-items: start;
}


/* =========================================================
   ABOUT LEFT
   ========================================================= */

.adsi-about .adsi-about-heading {
	padding-top: 0;
}


/* Gradient line */

.adsi-about .rule {
	width: 85px;
	height: 3px;

	margin: 0 0 23px;

	background: linear-gradient(
		90deg,
		var(--adsi-red) 0%,
		var(--adsi-red) 24%,
		var(--adsi-orange) 55%,
		var(--adsi-yellow) 100%
	);
}


/* ABOUT US */

.adsi-about .eyebrow {
	margin: 0 0 17px;

	color: var(--adsi-red);
	font-weight: 700;

	line-height: 1;

	letter-spacing: 0.17em;

	text-transform: uppercase;
}


/* Main title */

.adsi-about .adsi-about-title {
	max-width: 410px;

	margin: 0;

	font-family: inherit;

	font-size: clamp(46px, 4.1vw, 66px);

	font-weight: 800;

	line-height: 0.99;

	letter-spacing: -0.045em;
}


/* Grey part */

.adsi-about .adsi-about-title .soft {
	color: var(--adsi-grey);

	font-weight: 800;
}


/* =========================================================
   ABOUT META CHIPS
   ========================================================= */

.adsi-about .about-meta {
	display: flex;

	flex-wrap: wrap;

	max-width: 440px;

	gap: 7px 8px;

	margin-top: 35px;
}


/* Individual chip */

.adsi-about .chip {
	display: inline-flex;

	align-items: center;

	gap: 7px;

	min-height: 34px;

	padding: 7px 13px;

	background: #fff;

	border: 1px solid var(--adsi-light-border);

	border-radius: 50px;

	color: #686868;

	font-size: 10px;

	font-weight: 500;

	line-height: 1;

	letter-spacing: 0.12em;

	text-transform: uppercase;

	white-space: nowrap;
}


/* Chip heading */

.adsi-about .chip b {
	color: var(--adsi-red);

	font-size: 10px;

	font-weight: 700;

	letter-spacing: 0.13em;

	text-transform: uppercase;
}


/* =========================================================
   ABOUT RIGHT CONTENT
   ========================================================= */

.adsi-about .adsi-about-content {
	max-width: 690px;

	padding-top: 0;
}


/* Paragraph 

.adsi-about .prose p {
	margin: 0 0 21px;

	font-size: 15.5px;

	font-weight: 400;

	line-height: 1.68;

	letter-spacing: 0;
}
*/

/* First paragraph */

.adsi-about .prose .lead-line {
	margin: 0 0 24px;

	font-size: 17px;

	font-weight: 700;

	line-height: 1.55;
}


.adsi-about .prose p:last-child {
	margin-bottom: 0;
}


/* =========================================================
   ABOUT - TABLET
   ========================================================= */

@media (max-width: 1199.98px) {

	.adsi-about > .container {
		padding-left: 35px;
		padding-right: 35px;
	}


	.adsi-about .adsi-about-grid {
		grid-template-columns: 40% 60%;

		gap: 40px;
	}


	.adsi-about .adsi-about-title {
		font-size: 52px;
	}

}


/* =========================================================
   ABOUT - SMALL TABLET
   ========================================================= */

@media (max-width: 991.98px) {

	.adsi-about {
		padding: 60px 0 70px;
	}


	.adsi-about .adsi-about-grid {
		grid-template-columns: 1fr;

		gap: 50px;
	}


	.adsi-about .adsi-about-heading {
		max-width: 650px;
	}


	.adsi-about .adsi-about-title {
		max-width: 520px;

		font-size: 56px;
	}


	.adsi-about .about-meta {
		max-width: 550px;
	}


	.adsi-about .adsi-about-content {
		max-width: 760px;
	}

}


/* =========================================================
   ABOUT - MOBILE
   ========================================================= */

@media (max-width: 575.98px) {

	.adsi-about {
		padding: 45px 0 60px;
	}


	.adsi-about > .container {
		padding-left: 22px;
		padding-right: 22px;
	}


	.adsi-about .adsi-about-grid {
		gap: 42px;
	}


	.adsi-about .rule {
		width: 70px;

		margin-bottom: 20px;
	}


	.adsi-about .eyebrow {
		margin-bottom: 15px;
	}


	.adsi-about .adsi-about-title {
		max-width: 350px;

		font-size: 44px;

		line-height: 1;
	}


	.adsi-about .about-meta {
		gap: 7px;

		margin-top: 28px;
	}


	.adsi-about .chip {
		min-height: 32px;

		padding: 7px 11px;

		font-size: 9px;
	}


	.adsi-about .chip b {
		font-size: 9px;
	}


	.adsi-about .prose .lead-line {
		font-size: 16px;

		line-height: 1.55;
	}


	.adsi-about .prose p {
		margin-bottom: 20px;

		font-size: 15px;

		line-height: 1.65;
	}

}



/* =========================================================
   02. ADSI SERVICES SECTION
   ========================================================= */

.adsi-services-v2 {
	position: relative;

	overflow: hidden;
}


/* Container */

.adsi-services-v2 > .container {
	width: 100%;

	max-width: 1440px;

	margin: 0 auto;

	padding-left: 48px;
	padding-right: 48px;
}


/* =========================================================
   SERVICES HEADER
   ========================================================= */

.adsi-services-v2 .sec-head {
	display: grid;

	grid-template-columns: 41% 59%;

	align-items: start;

	margin-bottom: 65px;
}


/* Gradient line */

.adsi-services-v2 .rule {
	width: 85px;

	height: 3px;

	margin: 0 0 23px;

	background: linear-gradient(
		90deg,
		var(--adsi-red) 0%,
		var(--adsi-red) 24%,
		var(--adsi-orange) 55%,
		var(--adsi-yellow) 100%
	);
}


/* Services eyebrow */

.adsi-services-v2 .eyebrow {
	margin: 0 0 17px;

	color: var(--adsi-red);

	font-weight: 700;

	line-height: 1;

	letter-spacing: 0.17em;

	text-transform: uppercase;
}


/* Services heading */

.adsi-services-v2 .sec-head h2 {
	max-width: 530px;

	margin: 0;

	font-family: inherit;

	font-size: clamp(44px, 4.2vw, 64px);

	font-weight: 800;

	line-height: 0.99;

	letter-spacing: -0.045em;
}


/* Grey heading */

.adsi-services-v2 .sec-head h2 .soft {
	color: var(--adsi-grey);

	font-weight: 800;
}


/* Right intro */

.adsi-services-v2 .prose {
	max-width: 650px;
}


.adsi-services-v2 .lead-line {
	margin: 0;

	font-weight: 700;

	line-height: 1.6;
}


/* =========================================================
   SERVICE INDEX
   ========================================================= */

.adsi-services-v2 .svc-index {
	display: grid;

	grid-template-columns: repeat(4, minmax(0, 1fr));

	margin-bottom: 75px;

	border-top: 1px solid var(--adsi-border);

	border-left: 1px solid var(--adsi-border);
}


/* Index item */

.adsi-services-v2 .svc-index a {
	position: relative;

	display: flex;

	flex-direction: column;

	min-height: 110px;

	padding: 19px 20px;

	background: #fff;

	border-right: 1px solid var(--adsi-border);

	border-bottom: 1px solid var(--adsi-border);

	text-decoration: none;

	transition:
		background 0.25s ease,
		color 0.25s ease;
}


/* Number */

.adsi-services-v2 .svc-index .n {
	margin-bottom: 14px;

	color: var(--adsi-red);

	font-size: 10px;

	font-weight: 700;

	letter-spacing: 0.15em;
}


/* Title 

.adsi-services-v2 .svc-index .t {
	max-width: 230px;

	font-size: 14px;

	font-weight: 600;

	line-height: 1.35;
}
*/

/* Hover */

.adsi-services-v2 .svc-index a:hover {
	background: var(--adsi-black);

	color: #fff;

	text-decoration: none;
}


.adsi-services-v2 .svc-index a:hover .n {
	color: var(--adsi-yellow);
}


/* =========================================================
   SERVICE LIST
   ========================================================= */

.adsi-services-v2 .svc-list {
	width: 100%;
}


/* =========================================================
   INDIVIDUAL SERVICE
   ========================================================= */

.adsi-services-v2 .svc {
	display: grid;

	grid-template-columns:
		minmax(320px, 38%)
		minmax(0, 62%);
	border-top: 1px solid var(--adsi-border);

	scroll-margin-top: 100px;
}


.adsi-services-v2 .svc:last-child {
	border-bottom: 1px solid var(--adsi-border);
}


/* =========================================================
   SERVICE IMAGE
   ========================================================= */

.adsi-services-v2 .svc-plate {
	position: relative;

	width: 100%;

	height: 100%;

	min-height: 390px;

	padding: 0;

	background: #111;

	overflow: hidden;
}


/* Joomla uploaded image */

.adsi-services-v2 .svc-plate img {
	position: absolute;

	inset: 0;

	display: block;

	width: 100%;

	height: 100%;

	min-height: 390px;

	object-fit: cover;

	object-position: center;

	transition: transform 0.55s ease;
}


/* Image overlay */

.adsi-services-v2 .svc-plate::after {
	content: "";

	position: absolute;

	inset: 0;

	z-index: 1;

	pointer-events: none;

	background: linear-gradient(
		180deg,
		rgba(0, 0, 0, 0.03) 35%,
		rgba(0, 0, 0, 0.23) 100%
	);
}


/* Image hover */

.adsi-services-v2 .svc:hover .svc-plate img {
	transform: scale(1.035);
}


/* =========================================================
   NUMBER OVER IMAGE
   ========================================================= */

.adsi-services-v2 .svc-num {
	position: absolute;

	top: 24px;

	left: 25px;

	z-index: 3;

	display: inline-flex;

	align-items: center;

	justify-content: center;

	min-width: 44px;

	height: 30px;

	padding: 0 10px;

	background: var(--adsi-black);

	color: var(--adsi-yellow);

	font-size: 10px;

	font-weight: 700;

	line-height: 1;

	letter-spacing: 0.15em;
}


/* =========================================================
   SERVICE CONTENT
   ========================================================= */

.adsi-services-v2 .svc-body {
	display: flex;

	flex-direction: column;

	align-items: flex-start;

	justify-content: center;

	min-height: 390px;

	padding: 55px 65px;
}


/* Service title */

.adsi-services-v2 .svc-body h3 {
	max-width: 720px;

	margin: 0 0 22px;

	font-size: clamp(30px, 2.7vw, 43px);

	font-weight: 700;

	line-height: 1.07;

	letter-spacing: -0.035em;
}


/* Description wrapper */

.adsi-services-v2 .svc-description {
	width: 100%;

	max-width: 760px;
}


/* Description 

.adsi-services-v2 .svc-description p {
	margin: 0 0 26px;

	color: var(--adsi-text);

	font-size: 15px;

	font-weight: 400;

	line-height: 1.75;
}
*/

/* =========================================================
   SERVICE CTA
   ========================================================= */

.adsi-services-v2 .svc-go {
	display: inline-flex;

	align-items: center;

	gap: 20px;

	margin-top: 8px;

	padding-bottom: 6px;

	border-bottom: 1px solid #d7d1cc;

	color: #191919;

	font-size: 12px;

	font-weight: 700;

	line-height: 1.4;

	letter-spacing: 0.08em;

	text-transform: uppercase;

	text-decoration: none;

	transition:
		color 0.25s ease,
		border-color 0.25s ease;
}


/* Arrow */

.adsi-services-v2 .svc-go .arw {
	display: inline-block;

	color: var(--adsi-red);

	font-size: 20px;

	font-weight: 400;

	line-height: 1;

	transition: transform 0.25s ease;
}


/* CTA hover */

.adsi-services-v2 .svc-go:hover {
	color: var(--adsi-red);

	border-color: var(--adsi-red);

	text-decoration: none;
}


.adsi-services-v2 .svc-go:hover .arw {
	transform: translateX(6px);
}


/* =========================================================
   SERVICES - TABLET
   ========================================================= */

@media (max-width: 1199.98px) {

	.adsi-services-v2 {
		padding-top: 85px;

		padding-bottom: 95px;
	}


	.adsi-services-v2 > .container {
		padding-left: 35px;

		padding-right: 35px;
	}


	.adsi-services-v2 .sec-head {
		grid-template-columns: 40% 60%;

		gap: 40px;
	}


	.adsi-services-v2 .svc-index {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}


	.adsi-services-v2 .svc {
		grid-template-columns:
			minmax(300px, 40%)
			minmax(0, 60%);
	}


	.adsi-services-v2 .svc-body {
		padding: 45px;
	}

}


/* =========================================================
   SERVICES - TABLET PORTRAIT
   ========================================================= */

@media (max-width: 991.98px) {

	.adsi-services-v2 {
		padding: 75px 0 85px;
	}


	/* Header */

	.adsi-services-v2 .sec-head {
		grid-template-columns: 1fr;

		gap: 35px;

		margin-bottom: 50px;
	}


	.adsi-services-v2 .sec-head h2 {
		max-width: 650px;

		font-size: 54px;
	}


	.adsi-services-v2 .prose {
		max-width: 700px;
	}


	/* Index */

	.adsi-services-v2 .svc-index {
		grid-template-columns: repeat(2, minmax(0, 1fr));

		margin-bottom: 55px;
	}


	/* Services stack */

	.adsi-services-v2 .svc {
		grid-template-columns: 1fr;
	}


	.adsi-services-v2 .svc-plate {
		height: 360px;

		min-height: 360px;
	}


	.adsi-services-v2 .svc-plate img {
		min-height: 360px;
	}


	.adsi-services-v2 .svc-body {
		min-height: auto;

		padding: 45px 40px 55px;
	}

}


/* =========================================================
   SERVICES - MOBILE
   ========================================================= */

@media (max-width: 575.98px) {

	.adsi-services-v2 {
		padding: 55px 0 65px;
	}


	.adsi-services-v2 > .container {
		padding-left: 22px;

		padding-right: 22px;
	}


	/* Header */

	.adsi-services-v2 .sec-head {
		gap: 30px;

		margin-bottom: 40px;
	}


	.adsi-services-v2 .rule {
		width: 70px;

		margin-bottom: 20px;
	}


	.adsi-services-v2 .eyebrow {
		margin-bottom: 15px;
	}


	.adsi-services-v2 .sec-head h2 {
		max-width: 360px;

		font-size: 42px;

		line-height: 1;
	}


	.adsi-services-v2 .lead-line {
		font-size: 16px;

		line-height: 1.55;
	}


	/* Service index */

	.adsi-services-v2 .svc-index {
		grid-template-columns: 1fr;

		margin-bottom: 45px;
	}


	.adsi-services-v2 .svc-index a {
		min-height: auto;

		padding: 17px 18px;
	}


	.adsi-services-v2 .svc-index .n {
		margin-bottom: 7px;
	}


	.adsi-services-v2 .svc-index .t {
		max-width: none;
	}


	/* Image */

	.adsi-services-v2 .svc-plate {
		height: 260px;

		min-height: 260px;
	}


	.adsi-services-v2 .svc-plate img {
		height: 260px;

		min-height: 260px;
	}


	.adsi-services-v2 .svc-num {
		top: 18px;

		left: 18px;

		min-width: 41px;

		height: 28px;
	}


	/* Content */

	.adsi-services-v2 .svc-body {
		min-height: auto;

		padding: 30px 0px 35px;
	}


	.adsi-services-v2 .svc-body h3 {
		margin-bottom: 18px;

		font-size: 30px;

		line-height: 1.08;
	}


	.adsi-services-v2 .svc-description p {
		margin-bottom: 23px;

		font-size: 14px;

		line-height: 1.7;
	}


	.adsi-services-v2 .svc-go {
		gap: 15px;

		font-size: 11px;
	}

}


/* =========================================================
   VERY SMALL MOBILE
   ========================================================= */

@media (max-width: 399.98px) {

	.adsi-about .adsi-about-title,
	.adsi-services-v2 .sec-head h2 {
		font-size: 38px;
	}


	.adsi-services-v2 .svc-plate,
	.adsi-services-v2 .svc-plate img {
		height: 225px;

		min-height: 225px;
	}
}
/* =========================================================
   ALTERNATING SERVICE LAYOUT
   01 image left
   02 image right
   03 image left
   04 image right
   etc.
   ========================================================= */

@media (min-width: 992px) {

	/* Odd rows: image LEFT / content RIGHT */
	.adsi-services-v2 .svc:nth-child(odd) .svc-plate {
		order: 1;
	}

	.adsi-services-v2 .svc:nth-child(odd) .svc-body {
		order: 2;
	}


	/* Even rows: content LEFT / image RIGHT */
	.adsi-services-v2 .svc:nth-child(even) .svc-body {
		order: 1;
	}

	.adsi-services-v2 .svc:nth-child(even) .svc-plate {
		order: 2;
	}

}
}