
/* ========================= */
/* :: 1.0 WEB FONTS  */
/* ========================= */
@import url('https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=Roboto:ital,wght@0,100;0,300;0,400;0,500;0,700;0,900;1,100;1,300;1,400;1,500;1,700;1,900&display=swap');

/* ================================== */
/* :: 2.0 GLOBAL Variable Define CSS  */
/* ================================== */
* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}
:root{

    /* Google Font */
    --inter: "Inter", sans-serif;
    --roboto: "Roboto", sans-serif;
    
    /* Color Palette */
    --white: #fff;
    --black: #000;
    --primary: #D5E225;
    --secondary: #22637F;
}

/* ========================= */
/* :: 3.0 COMMON CSS */
/* ========================= */
html, body {
    height: 100%;
    scroll-behavior: smooth;
}
body {
    font-family: var(--inter);
    font-size: 16px;
    font-weight: 400;
    line-height: normal;
    background:var(--white);
    color: var(--black);
    text-rendering: optimizeLegibility;
    overflow-x:hidden;
}
p, h1, h2, h3, h4, h5, h6 {
    margin: 0;
    padding: 0;
}
section, .section {
    position: relative;
}

.container {
    width: 100%;
    margin: 0 auto;
}
a, button {
    text-decoration: none;
    -webkit-transition: all 0.3s ease 0s;
    transition: all 0.3s ease 0s;
}
a, button {
	outline: none;
	box-shadow: none;
}
button {
	background: unset;
}
ol, ul {
    margin: 0;
    padding: 0;
}

ol li, ul li {
    list-style: none;
}

img {
    height: auto;
    max-width: 100%;
    object-fit: cover;
}
input, input:focus, input:focus-visible, input:active, select, .form-select, .form-select:focus, textarea {
    outline: none;
    box-shadow: none;
}
* + address, * + dl, * + fieldset, * + figure, * + ol, * + p, * + pre, * + ul {
	margin: 0;
	padding: 0;
}

*::-moz-selection {
  background: var(--primary);
  color: var(--secondary);
  text-shadow: none;
}

::-moz-selection {
  background: var(--primary);
  color: var(--secondary);
  text-shadow: none;
}

::selection {
  background: var(--primary);
  color: var(--secondary);
  text-shadow: none;
}

/* ----- Page Theme CSS Start ----- */
.btn {
    min-width: 250px;
	padding: 20px 45px;
	font-size: 24px;
	font-weight: 600;
	font-family: var(--inter);
	text-transform: uppercase;
	letter-spacing: .25px;
	color: var(--black);
	background-color: var(--primary);
	border: unset;
	border-radius: 200px;
	transition: all .3s ease-in-out;
}
.btn:hover {
    color: var(--white);
    background-color: var(--secondary);
}
/* ----- Page Theme CSS End ----- */

/* ----- Bootstrap Customized CSS Start ----- */
.fs-1 {
    font-size: 90px !important;
}

.text-primary {
    color: var(--primary) !important;
}
.bg-primary {
    background-color: var(--primary) !important;
}
/* ----- Bootstrap Customized CSS End ----- */


/* =============================== */
/* :: 4.0 LandingPage CSS Start */
/* =============================== */
.landing {
    background: url("../imgs/page-banner.jpg") no-repeat center / cover;
    height: 100vh;
}
.landing::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.65);
    z-index: -1;
}
.landing__title {
	font-size: 45px;
	font-weight: 200;
	letter-spacing: 2px;
}
.landing__logos {
    gap: 145px;
}
.landing__site {
    max-width: 555px;
}
/* =============================== */
/* :: 4.0 LandingPage CSS End */
/* =============================== */



/* =============================== */
/* :: 5.0 Site Page CSS Start */
/* =============================== */

/* ----- Header Area Start ----- */
.header {
    padding: 20px 0 25px;
}
.header__logo {
    max-width: 240px;
}
.header__right {
    gap: 70px;
}
.header__ul {
    gap: 60px;
}
.header__link {
    font-size: 17px;
    color: var(--black);
    transition: all .3s ease-in-out;
}
.header__link:hover {
    color: var(--primary);
}
.btn--header {
	font-size: 17px;
	padding: 8px 20px;
	font-weight: 600;
	min-width: 125px;
}


/* Mobile Menu Start */
.mobile__menu__btn, .menu__close__btn {
	border-radius: 4px;
	padding: 8px 11px 10px !important;
	height: 40px !important;
	background-color: var(--primary);
	border: none;
	transition: all .3s ease-in-out;
}
.mobile__menu__btn svg, .menu__close__btn svg {
	width: 18px;
	transition: all .3s ease-in-out;
}
.mobile__menu__btn:hover {
    background-color: var(--secondary);
}
.mobile__menu__btn:hover svg {
    fill: var(--white);
}
.mobile__menu .offcanvas-header {
    padding: 20px 16px;
}
.offcanvas__logo {
    max-width: 170px;
}
.menu__close__btn:hover {
    background-color: var(--white);
}
.mobile__menu .offcanvas {
    background-color: var(--secondary);
}
.mobile__nav__link {
    color: var(--white);
    transition: all .3s ease-in-out;
    padding: 16px;
    border-bottom: 1px solid rgba(255, 255, 255, 0.15);
}
.header__ul li:first-child .mobile__nav__link {
    border-top: 1px solid rgba(255, 255, 255, 0.15);
}
.mobile__nav__link:hover {
    color: var(--primary);
    background-color: rgba(255, 255, 255, 0.15);
}
/* Mobile Menu End */
/* ----- Header Area End ----- */


/* ----- Hero Section Start ----- */
.hero {
    padding-top: 30px;
    background: url("../imgs/page-banner.jpg") no-repeat center / cover;
    min-height: 420px;
}
.hero::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: rgba(0, 0, 0, 0.65);
    z-index: -1;
}
.hero__content {
	max-width: 710px;
}
.main__heading {
	line-height: 1.2;
	letter-spacing: 3px;
}
.heading__light {
    font-size: 50%;
    font-weight: 200;
}
.hero__para {
    font-size: 24px;
    line-height: 1.65;
}
/* ----- Hero Section End ----- */


/* ----- Marquee Banner Slider Section Start ----- */
.marquee {
    padding: 12px 0;
}
.marquee .swiper-wrapper {
    transition-timing-function: linear;
}
.marquee .swiper-slide{
    width: fit-content;
}
.banner__content {
	font-size: 56px;
	letter-spacing: 2px;
}
.marquee__img {
    max-width: 75px;
}
.banner__fancy__text {
	-webkit-text-fill-color: transparent;
	-webkit-text-stroke: 1px;
    font-family: var(--roboto);
}
/* ----- Marquee Banner Slider Section End ----- */


/* ----- Service Section Start ----- */
.service {
    padding: 80px 0 140px;
}
.service__heading {
    font-size: 50px;
}
.service__card__item {
    background: no-repeat top / cover, var(--primary);
    min-height: 665px;
    height: 100%;
    padding: 80px 90px;
    z-index: 1;
}
.service__card__item::after {
	content: "";
	position: absolute;
	left: 0;
	bottom: 0;
	width: 100%;
	height: 75%;
	z-index: -1;
    transition: all .3s ease-in-out;
}
.service__card__item:hover::after {
    height: 100%;
}
.service__card--1 {
    background-image: url("../imgs/thumbs/service/service-1.jpg");
}
.service__card--2 {
    background-image: url("../imgs/thumbs/service/service-2.jpg");
}
.service__card--1::after {
	background: linear-gradient(to bottom, #c2e48600 0%, #D5E225 90%);
}
.service__card--2::after {
	background: linear-gradient(to bottom, #c2e48600 0%, #22637F 90%);
}
.service__link {
    width: 96px;
    height: 96px;
    border-radius: 50%;
    background-color: var(--black);
    margin: 40px;
    transition: all .3s ease-in-out;
}
.service__card__item:hover .service__link {
	transform: rotate(35deg);
}
.service__link__img {
    max-width: 52px;
}
.service__icon {
    height: 100px;
}
.service__icon img {
    max-height: 96px;
}
.service__title {
    font-size: 40px;
    letter-spacing: .5px;
}
.service__para {
    font-size: 20px;
    font-weight: 200;
    line-height: 1.5;
}
/* ----- Service Section End ----- */


/* ----- Partner Section Start ----- */
.partner__wrapper {
  padding-top: 40px;
}

.partner {
    padding-bottom: 140px;
}
.partner__icon {
    max-width: 123px;
    margin-bottom: 80px;
}
.partner__title {
	font-size: 45px;
	line-height: 1.3;
}
.partner__para {
	max-width: 490px;
	font-size: 20px;
	line-height: 1.9;
	letter-spacing: .3px;
}
.partner__para__full {
  max-width: 950px;
  font-size: 20px;
  line-height: 1.9;
  letter-spacing: .3px;
  margin-bottom: -60px;
}
.partner__thumb {
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
	width: 50%;
	max-height: 670px;
	border-radius: 20px 0 0 20px;
}

.partner__thumb_left {
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
  width: 50%;
  max-height: 670px;
  border-radius: 20px 0 0 20px;
}

.partner_content_right {
  padding-left: 50px;
}

.blueprint__patteren {
	max-width: 770px;
	opacity: .75;
}
/* ----- Partner Section End ----- */


/* ----- Project Section Start ----- */
.project {
    padding: 65px 0 100px;
}
.project__heading {
	font-size: 50px;
	letter-spacing: 2px;
}
.project__thumb {
	width: 100%;
	height: 575px;
	border-radius: 500px;
}
.project__thumb img {
    width: 100%;
    height: 100%;
}
.project__content {
	margin-top: -80px;
	padding: 0 40px 30px;
}
.project__btn {
	width: 130px;
	height: 130px;
	border-radius: 50%;
    background-color: var(--primary);
    margin-bottom: 40px;
}
.project__btn img {
    max-width: 70px;
    transition: all .3s ease-in-out;
}
.project__btn:hover img {
    transform: rotate(35deg);
}
.project__para {
    font-size: 20px;
    color: #838383;
}
/* ----- Project Section End ----- */


/* ----- Contact Section Start ----- */
.contact {
    padding: 120px 0;
}
.contact__title {
    font-size: 55px;
    letter-spacing: 2px;
}
.contact__wrapper__row.g-5 {
    --bs-gutter-x: 80px;
    --bs-gutter-y: 80px;
}
.contact__form__row.g-4 {
    --bs-gutter-x: 30px;
    --bs-gutter-y: 30px;
}
.input {
    width: 100%;
    padding: 20px 0;
    font-size: 18px;
    color: var(--black);
    border: none;
    border-bottom: 1px solid #000;
    background-color: transparent;
    resize: none;
}
.input--textarea {
    height: 100px;
}
*::-moz-placeholder {
    color: var(--black);
    opacity: 1;
}

*::placeholder {
    color: var(--black);
    opacity: 1;
}

.contact__label {
    font-size: 18px;
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    transition: all .2s ease-in-out;
}
.input:focus + .contact__label, .input:not(:placeholder-shown) + .contact__label {
    transform: translate(0) scale(.95);
    top: -8px;
}
.contact__input .nice-select {
	background-color: transparent;
	border-radius: 0;
	border: none;
    border-bottom: 1px solid #000;
	font-size: 18px;
	width: 100%;
	height: 100%;
	line-height: normal;
	padding: 20px 0;
}
.contact__input .nice-select::after {
    border: none;
    background: url("../imgs/icons-objs/chevron-down.svg") no-repeat;
    width: 14px;
    height: 8px;
    -webkit-transform-origin: 50% 50%;
	-ms-transform-origin: 50% 50%;
	transform-origin: 50% 50%;
	-webkit-transform: rotate(0);
	-ms-transform: rotate(0);
	transform: rotate(0);
    -webkit-transition: all .2s ease-in-out;
	transition: all .2s ease-in-out;
}
.contact__input .nice-select.open::after {
	-webkit-transform: rotate(-180deg);
	-ms-transform: rotate(-180deg);
    transform: rotate(-180deg);
}
.contact__input .nice-select .list {
    width: 100%;
    padding: 10px 0;
    background-color: rgba(255, 255, 255, 0.4);
    backdrop-filter: blur(15px);
}
.contact__input .nice-select .option:hover, .contact__input .nice-select .option.focus, .contact__input .nice-select .option.selected.focus {
	background-color: rgba(246, 246, 246, 0.75);
}
.contact__form__btn {
    padding-top: 80px;
}
.btn--submit {
    color: var(--primary);
    background-color: var(--black);
}

.contact__box {
    padding: 50px 0;
    background-color: var(--black);
    border-radius: 20px;
}
.contact__box::before {
	content: "";
	position: absolute;
	top: 0;
	right: 0;
	width: 85%;
	height: 100%;
	background: url("../imgs/icons-objs/contact-box-obj.png") no-repeat center / cover;
	z-index: -1;
}
.contact__item {
    padding: 50px;
}
.border-bottom-svg::after {
    content: "";
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    height: 2px;
    background: url("../imgs/icons-objs/border-bottom.svg");
}
.contact__item__icon {
    width: 110px;
    height: 110px;
    border-radius: 50%;
    background-color: var(--primary);
}
.contact__item__icon img {
    max-width: 50px;
}
.contact__item__title {
    font-size: 26px;
}
.contact__item__info, .contact__item__info a {
    color: var(--white);
    font-size: 24px;
    transition: all .3s ease-in-out;
}
.contact__item__info a:hover {
    color: var(--secondary);
}
/* ----- Contact Section End ----- */


/* ----- Footer Area Start ----- */
.footer__top {
    padding: 55px 0 65px;
}
.footer__container {
    gap: 48px;
}
.footer__logo {
    max-width: 350px;
}
.footer__ul {
	gap: 35px 60px;
}
.footer__nav__link, .footer__link__item a {
	font-size: 15px;
	color: var(--black);
	transition: all .3s ease-in-out;
	letter-spacing: .75px;
}
.footer__nav__link:hover, .footer__link__item a:hover {
    color: var(--primary);
}
.footer__links {
    border: 1px solid #d9d9d9;
    border-radius: 50px;
    padding: 15px 0;
}
.footer__link__item {
    padding: 0 25px;
    border-right: 1px solid #d9d9d9;
}
.footer__link__item:last-child {
    border: none;
}
.footer__bottom {
    padding: 18px 0;
}
/* ----- Footer Area End ----- */

/* =============================== */
/* :: 5.0 Site Page CSS End */
/* =============================== */

.header__nav ul li:last-child { display: none; }

.partner__content ul li {
  margin-left: 20px;
  max-width: 90%;
  list-style: disc;
  font-size: 20px;
  line-height: 1.9;
  letter-spacing: .3px;
  text-align: left;
}