/*=============== GOOGLE FONTS ===============*/
@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@100..900&display=swap');

/*=============== VARIABLES CSS ===============*/
:root {
	--header-height: 3.5rem;

	/*========== Colors ==========*/
	/*Color mode HSL(hue, saturation, lightness)*/
	--first-color: #81a969;
	--second-color: hsl(42, 98%, 52%);
	--first-gradient: linear-gradient(90deg, #638351, #a2d975);
	--title-color: hsl(255, 12%, 12%);
	--text-color: hsl(225, 12%, 24%);
	--text-color-light: hsl(0, 0%, 84%);
	--body-color: hsl(0, 0%, 100%);
	--container-color: hsl(0, 0%, 100%);
	--white-color: hsl(0, 0%, 100%);
	--black-color: #2f452b;
	--gray-border: hsl(255, 6%, 90%);
	--black-border: hsl(255, 10%, 20%);

	/*========== Font and typography ==========*/
	/*.5rem = 8px | 1rem = 16px ...*/
	--body-font: 'Montserrat', sans-serif;
	--big-font-size: 2.25rem;
	--h1-font-size: 1.5rem;
	--h2-font-size: 1.25rem;
	--h3-font-size: 1rem;
	--normal-font-size: 0.938rem;
	--small-font-size: 0.813rem;

	/*========== Font weight ==========*/
	--font-regular: 400;
	--font-medium: 500;
	--font-semi-bold: 600;
	--font-bold: 700;

	/*========== z index ==========*/
	--z-tooltip: 10;
	--z-fixed: 100;
}

/*========== Responsive typography ==========*/
@media screen and (min-width: 1150px) {
	:root {
		--big-font-size: 3.5rem;
		--h1-font-size: 2.25rem;
		--h2-font-size: 1.5rem;
		--h3-font-size: 1.25rem;
		--normal-font-size: 1rem;
		--small-font-size: 0.875rem;
	}
}

/*=============== BASE ===============*/
* {
	box-sizing: border-box;
	padding: 0;
	margin: 0;
}

html {
	scroll-behavior: smooth;
}

body {
	font-family: var(--body-font);
	font-size: var(--normal-font-size);
	background-color: var(--body-color);
	color: var(--text-color);
}

h1,
h2,
h3,
h4 {
	color: var(--title-color);
	font-weight: var(--font-semi-bold);
}

ul {
	list-style: none;
}

a {
	text-decoration: none;
}

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

/*=============== REUSABLE CSS CLASSES ===============*/
.container {
	max-width: 1120px;
	margin-inline: 1.5rem;
}

.grid {
	display: grid;
	gap: 1.5rem;
}

.section {
	padding-block: 5rem 1rem;
}
.section__title,
.section__subtitle {
	text-align: center;
}

.section__title {
	font-size: var(--h1-font-size);
	font-weight: var(--font-bold);
	margin-bottom: 1.5rem;
}

.section__subtitle {
	display: block;
	font-size: var(--normal-font-size);
	font-weight: var(--font-semi-bold);
	color: var(--second-color);
	margin-bottom: 0.5rem;
}

.main {
	overflow: hidden;
}

a.nav__logo {
	display: flex;
}
/*=============== HEADER & NAV ===============*/
.header {
	position: fixed;
	width: 100%;
	top: 0;
	left: 0;
	background-color: transparent;
	z-index: var(--z-fixed);
	transition: background-color 0.4s;
}
.nav {
	position: relative;
	height: var(--header-height);
	display: flex;
	justify-content: space-between;
	align-items: center;
}
.nav__logo {
	display: flex;
	align-items: center;
	column-gap: 0.25rem;
}
.nav__logo span {
	color: var(--white-color);
	font-weight: var(--font-semi-bold);
	transition: color 0.4s;
}
.nav__logo span {
	color: var(--first-color);
	font-size: 1.2rem;
}
.nav__toggle,
.nav__close {
	font-size: 1.5rem;
	color: var(--first-color);
	cursor: pointer;
	transition: color 0.4s;
}

/* Navigation for mobile devices */
@media screen and (max-width: 1150px) {
	.nav__menu {
		position: fixed;
		top: 0;
		right: -100%;
		background-color: var(--black-color);
		width: 80%;
		height: 100%;
		padding: 7.5rem 4.5rem 0;
		border-left: 2px solid var(--black-border);
		transition: right 0.4s;
	}
	.nav__list {
		display: flex;
		flex-direction: column;
		row-gap: 3rem;
	}
	.nav__link {
		color: var(--text-color-light);
		font-weight: var(--font-semi-bold);
		transition: color 0.4s;
	}
	.nav__link:hover {
		color: var(--first-color);
	}
	.nav__close {
		position: absolute;
		top: 1rem;
		right: 1.5rem;
	}
}

/* Show menu */
.show-menu {
	right: 0;
}

/* Change background header */
.bg-header {
	background-color: var(--body-color);
	box-shadow: 0 4px 16px hsla(225, 90%, 8%, 0.1);
}
.bg-header .nav__logo span,
.bg-header .nav__toggle {
	color: var(--title-color);
}

/* Active link */
.nav__link {
	color: var(--white-color);
}
.active-link {
	color: var(--first-color);
}

/*=============== HOME ===============*/
.home {
	position: relative;
	background-color: var(--black-color);
}
.home__container {
	position: relative;
	row-gap: 3rem;
	padding-block: 2.5rem 6rem;
}
.home__content {
	row-gap: 2.5rem;
}
.home__data {
	text-align: center;
}
.home__title {
	color: white;
	font-size: var(--big-font-size);
	font-weight: var(--font-bold);
	margin-bottom: 1rem;
}
.home__discription {
	margin-bottom: 2.5rem;
	color: var(--text-color-light);
}
.home__buttons {
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 1rem;
}
.home__info {
	display: flex;
	justify-content: center;
	column-gap: 4.5rem;
}
.home__info-title {
	color: var(--second-color);
	font-size: var(--big-font-size);
	font-weight: var(--font-bold);
	margin-bottom: 0.5rem;
}
.home__info-description {
	font-size: var(--small-font-size);
	color: var(--white-color);
}
.home__images {
	position: relative;
	justify-self: center;
}
.home__img-1 {
	width: 250px;
	margin-left: 3.5rem;
}
.home__img-2 {
	width: 150px;
	border: 5px solid var(--black-color);
	position: absolute;
	left: 0;
	bottom: -3.5rem;
}
.home__lines {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: right;
}

/*=============== BUTTON ===============*/
.button {
	display: inline-flex;
	background: var(--first-gradient);
	color: var(--white-color);
	font-weight: var(--font-semi-bold);
	padding: 1rem;
	transition: box-shadow 0.4s;
}
.button:hover {
	box-shadow: 0 8px 32px hsla(98, 95%, 55%, 0.3);
	color: var(--white-color);
}
.button_link {
	display: flex;
	align-items: center;
	column-gap: 0.25rem;
	color: var(--first-color);
}
.button_link span {
	font-weight: var(--font-semi-bold);
}
.button_link i {
	font-size: 1.5rem;
	transition: transform 0.4s;
}
.button_link:hover i {
	transform: translateX(0.25rem);
}
/*=============== ABOUT ===============*/
.about__container {
	row-gap: 8rem;
}
.about__data {
	text-align: center;
}
.about__description {
	margin-bottom: 2rem;
}
.about__list {
	text-align: initial;
	grid-template-columns: repeat(2, 130px);
	justify-content: center;
	gap: 1.5rem;
	margin-bottom: 2.5rem;
}
.about__list-item {
	display: flex;
	column-gap: 0.5rem;
	color: var(--title-color);
}
.about__list-item i {
	font-size: 1.25rem;
	color: var(--first-color);
}
.about__images {
	position: relative;
	justify-self: center;
}
.about__img-1 {
	width: 200px;
	border: 5px solid var(--body-color);
	position: absolute;
	top: -5rem;
	left: 6rem;
}
.about__img-2 {
	margin-right: 2.5rem;
	width: 250px;
}

/*=============== SERVICES ===============*/
.services {
	position: relative;
}
.services__container {
	width: 100%;
	position: relative;
	row-gap: 3rem;
}
.services__data {
	text-align: center;
}
.services__description {
	margin-bottom: 2rem;
}
.services__card {
	width: 260px;
	border: 2px solid var(--gray-border);
	background-color: var(--container-color);
	padding: 2rem 1rem 3.5rem;
	transition: border-color 0.4s;
}
.services__card:hover {
	border-color: var(--first-color);
}
.services__icon {
	height: 70px;
	width: 70px;
	border-radius: 50%;
	background-color: var(--black-color);
	color: white;
	font-size: 2.5rem;
	display: grid;
	place-items: center;
	margin-bottom: 1.5rem;
}
.services__title {
	font-size: var(--h2-font-size);
	margin-bottom: 0.5rem;
}
.services__shape {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	height: 245px;
	background-color: var(--black-color);
}

/* Swiper class */
.swiper {
	margin-inline: initial;
	padding-bottom: 4rem;
}
.swiper-button-prev::after,
.swiper-button-next::after {
	content: '';
}
.swiper-button-prev,
.swiper-button-next {
	top: initial;
	bottom: 0;
	height: 32px;
	width: 32px;
	border-radius: 50%;
	color: var(--title-color);
	background-color: var(--container-color);
	box-shadow: 0 2px 8px hsla(255, 8%, 4%, 0.1);
	font-size: 1.5rem;
}
.swiper-button-prev {
	left: calc(50% - 3rem);
}
.swiper-button-next {
	right: calc(50% - 3rem);
}

/*=============== PROJECTS ===============*/
.projects {
	background-color: var(--black-color);
}
.projects .section__title {
	color: var(--white-color);
}
.projects__container {
	padding-block: 1.5rem 3rem;
}
.projects__card {
	background-color: var(--container-color);
	background-clip: content-box;
	border: 2px solid transparent;
	transition: border-color 0.4s;
}
.projects__card:hover {
	border-color: var(--first-color);
}
.projects__data {
	padding: 1.5rem 1rem 3rem;
}
.projects__title {
	font-size: var(--h2-font-size);
	margin-block: 0.5rem;
}
.projects__date {
	display: block;
	color: var(--title-color);
	font-weight: var(--font-medium);
	margin-bottom: 1.5rem;
}

/*=============== CONTACT ===============*/
.contact__container {
	row-gap: 3rem;
	padding-block: 1.5rem 3rem;
}
.contact__img {
	width: 320px;
	justify-self: center;
}
.contact__data {
	grid-template-columns: 230px;
	justify-content: center;
	row-gap: 1.5rem;
}
.contact__card {
	background-color: var(--container-color);
	border: 2px solid var(--gray-border);
	text-align: center;
	padding: 1.5rem 2rem;
}

.contact__card:hover {
	border-color: var(--first-color);
}
.contact__icon {
	background-color: var(--black-color);
	color: var(--white-color);
	width: 48px;
	height: 48px;
	border-radius: 50%;
	display: grid;
	place-items: center;
	font-size: 2rem;
	margin: 0 auto 1.5rem;
}
.contact__title {
	font-size: var(--h2-font-size);
	margin-bottom: 0.5rem;
}
.contact__info {
	font-style: normal;
}
.contact__social {
	justify-content: center;
	display: flex;
	column-gap: 1rem;
}
.klik-here.animate {
	background-color: #81a969; /* Warna saat animasi, sesuaikan dengan tema Anda */
	color: white;
}
.contact__social-link {
	font-size: 1.5rem;
	color: var(--first-color);
	transition: transform 0.4s;
}
.contact__social-link:hover {
	transform: translateY(-0.25rem);
	color: var(--second-color);
}

/*=============== FOOTER ===============*/
a.footer__logo {
	display: flex;
}
.footer {
	background-color: var(--black-border);
	color: var(--text-color-light);
	padding-block: 3.5rem 2rem;
}
.footer__container {
	row-gap: 4rem;
	padding-bottom: 4rem;
}
.footer__logo {
	display: inline-block;
	column-gap: 0.25rem;
	align-items: center;
}
.footer__logo span {
	font-size: var(--h3-font-size);
	color: var(--white-color);
	font-weight: var(--font-semi-bold);
}
.footer__logo i {
	color: var(--first-color);
	font-size: 1.5rem;
}
.footer__discription {
	margin-block: 1rem;
}
.footer__email,
.footer__info {
	font-style: normal;
}
.footer__content {
	grid-template-columns: repeat(2, max-content);
	gap: 4rem 3rem;
}
.footer__title {
	font-size: var(--h3-font-size);
	color: var(--white-color);
	margin-bottom: 1rem;
}
.footer__links,
.footer__list {
	display: grid;
	row-gap: 0.5rem;
}
.footer__link {
	color: var(--text-color-light);
	transition: color 0.4s;
}
.footer__link:hover {
	color: var(--first-color);
}
.footer__social {
	display: flex;
	column-gap: 1rem;
}
.footer__social-link {
	font-size: 1.5rem;
	color: var(--first-color);
	transition: transform 0.4s;
}
.footer__social-link:hover {
	transform: translateY(-0.25rem);
}
.footer__copy {
	display: block;
	text-align: center;
	font-size: small;
}
.footer__copy a {
	color: red;
}
/*=============== SCROLL BAR ===============*/
::-webkit-scrollbar {
	width: 0.6rem;
	background-color: hsl(255, 5%, 75%);
}
::-webkit-scrollbar-thumb {
	background-color: hsl(255, 5%, 65%);
}
::-webkit-scrollbar-thumb:hover {
	background-color: hsl(255, 5%, 55%);
}
/*=============== SCROLL UP ===============*/
.scrollup {
	position: fixed;
	right: 1rem;
	bottom: -50%;
	background-color: var(--body-color);
	box-shadow: 0 4px 16px hsla(225, 90%, 8%, 0.15);
	color: var(--title-color);
	display: inline-flex;
	padding: 6px;
	font-size: 1.25rem;
	z-index: var(--z-tooltip);
	transition: bottom 0.4s transform 0.4s;
}
.scrollup:hover {
	transform: translateY(-0.5rem);
}
/* Show Scroll Up */
.show-scroll {
	bottom: 3rem;
}

/*=============== BREAKPOINTS ===============*/
/* For small devices */
@media screen and (max-width: 340px) {
	.container {
		margin-inline: 1rem;
	}
	.section__title {
		font-size: 1.25rem;
	}
	.home__title {
		font-size: 1.75rem;
	}
	.home__buttons {
		flex-direction: column;
	}
	.services {
    display: flex;
    flex-direction: column; /* Menjaga elemen berurutan */
    align-items: center;    /* Pusatkan secara horizontal */
    justify-content: center; /* Pusatkan secara vertikal */
    text-align: center;     /* Pusatkan teks */
    padding: 20px;          /* Tambahkan jarak agar teks tidak terpotong */
  }

  .services__data {
    width: 100%; /* Pastikan kontainer mengikuti lebar layar kecil */
  }
	.home__img-1 {
		width: 200px;
		margin-left: 1.5rem;
	}
	.about__list {
		grid-template-columns: repeat(1, 200px);
	}
	.about__img-1 {
		width: 150px;
		left: 4rem;
	}
	.about__img-2 {
		width: 200px;
		margin-right: 0;
	}
	.footer__content {
		grid-template-columns: repeat(1, max-content);
	}
}
/* For medium devices */
@media screen and (min-width: 540px) {
	.home__container,
  .about__container,
  .projects__container,
  .contact__container {
		grid-template-columns: 360px;
		justify-content: center;
	}
	.footer__content {
		grid-template-columns: repeat(3, max-content);
	}
	.services {
    display: flex;
    flex-direction: column; /* Menjaga elemen berurutan */
    align-items: center;    /* Pusatkan secara horizontal */
    justify-content: center; /* Pusatkan secara vertikal */
    text-align: center;     /* Pusatkan teks */
    padding: 20px;          /* Tambahkan jarak agar teks tidak terpotong */
  }

  .services__data {
    width: 100%; /* Pastikan kontainer mengikuti lebar layar kecil */
  }
}
@media screen and (min-width: 768px) {
	.nav__menu {
		width: 50%;
	}
	.projects__container {
		grid-template-columns: repeat(2, 330px);
	}
	.contact__data {
		grid-template-columns: repeat(2, 240px);
	}
	.footer__container {
		grid-template-columns: repeat(2, max-content);
		justify-content: space-between;
	}
}
.klik-disini-icon {
	color: var(--white-color);
}
.klik-disini-icon:hover {
	color: var(--second-color);
}

.klik-disini {
	color: var(--first-color);
}
.klik-disini:hover {
	color: var(--second-color);
}

/* For large devices */
@media screen and (min-width: 1151px) {
	.container {
		margin-inline: auto;
	}
	.section {
		padding-block: 7rem 2rem;
	}
	.nav {
		height: calc(var(--header-height) + 2rem);
	}
	.nav__toggle,
	.nav__close {
		display: none;
	}
	.nav__menu {
		width: initial;
	}
	.nav__list {
		display: flex;
		flex-direction: row;
		align-items: center;
		column-gap: 4rem;
	}
	.bg-header .nav__link {
		color: var(--text-color);
	}
	.bg-header .active-link,
	.bg-header .nav__link:hover {
		color: var(--first-color);
	}
	.bg-header .button,
	.bg-header.button:hover {
		color: var(--white-color);
	}
	.home__container {
		grid-template-columns: 475px 550px;
		column-gap: 6rem;
		align-items: flex-start;
		padding-top: 1.6rem;
	}
	.home__content {
		row-gap: 4.5rem;
	}
	.home__data {
		text-align: initial;
	}
	.home__discription {
		margin-bottom: 3rem;
	}
	.home__buttons {
		justify-content: 3rem;
		column-gap: 3rem;
	}
	.home__info {
		margin-top: -2rem;
		justify-content: center;
		column-gap: 5.5rem;
	}
	.home__info-description {
		font-size: var(--normal-font-size);
	}
	.home__img-1 {
		width: 550px;
		margin-left: 0;
	}
	.home__img-2 {
		width: 350px;
		border-width: 10px;
		left: -7rem;
		bottom: -8rem;
	}
	.home__lines {
		object-position: center;
	}
	.about__container {
		grid-template-columns: repeat(2, 490px);
		column-gap: 9rem;
		padding-block: 9rem 2rem;
	}
	.about__images {
		order: -1;
	}
	.about__img-1 {
		width: 370px;
		border-width: 10px;
		top: -9rem;
		left: 11rem;
	}
	.about__img-2 {
		width: 470px;
	}
	.about__data,
	.about__data :is(.section__title, .section__subtitle) {
		text-align: initial;
	}
	.about__list {
		grid-template-columns: repeat(2, 1fr);
		margin-bottom: 3.5rem;
	}
	.secvices__container {
		grid-template-columns: initial;
		row-gap: 5rem;
		padding-bottom: 4.5rem;
	}
	.services__swiper {
		width: 100%;
	}
	.services__data {
		display: grid;
		grid-template-columns: 415px 370px max-content;
		justify-content: space-between;
		align-items: center;
	}
	.services__data :is(.section__title, .section__subtitle),
	.services__description {
		text-align: initial;
	}
	.services__data .section__title {
		margin-bottom: 0;
	}
	.services__swiper {
		max-width: 1100px;
	}
	.secvices__card {
		width: 348px;
		border-width: 3px;
		padding: 3.5rem 2rem 6rem;
	}
	.services__shape {
		height: 330px;
	}
	.projects__container {
		grid-template-columns: repeat(3, 350px);
		column-gap: 2rem;
		padding-block: 5rem 4rem;
	}
	.projects__card {
		border-width: 3px;
	}
	.projects__data {
		padding: 2rem 1.5rem 4rem;
	}
	.contact :is(.section__title, .section__subtitle) {
		text-align: initial;
	}
	.contact__container {
		grid-template-columns: 530px 515px;
		justify-content: initial;
		align-items: flex-start;
		column-gap: 3.5rem;
		padding-block: 3.5rem 4rem;
	}
	.contact__img {
		width: 530px;
	}
	.contact__data {
		gap: 2rem;
	}
	.contact__card {
		border-width: 3px;
	}
	.klik-disini-icon {
		color: var(--white-color);
	}
	.klik-disini {
		color: var(--text-color);
		transition: bottom 0.4s transform 0.4s;
	}
	.klik-disini:hover {
		color: var(--first-color);
	}
	.contact__title {
		font-size: var(--h3-font-size);
	}
	.footer {
		padding-block: 4.5rem 3rem;
	}
	.footer__container {
		padding-bottom: 6rem;
	}
	.footer__content {
		column-gap: 7rem;
	}
	.footer__description {
		margin-block: 1.5rem;
	}
	.footer__title {
		margin-bottom: 1.5rem;
	}
	.footer__link,
	.footer__list {
		row-gap: 1rem;
	}
	.scrollup {
		right: 3rem;
	}
}
