* {
	margin: 0;
	padding: 0;
	box-sizing: border-box;
	scroll-behavior: smooth;
}

@font-face {
    font-family: Creato;
    src: url("/cache/creato_display.otf") format("opentype");
}

/*****************            Config                *******************/
:root {
	--bg-main: #141820;
	--bg-opposite: #fafafa;
	--bg-secondary: #1c212c;
	--bg-dark: #11141b;
	--text-color: #fff;
	--opposite-text-color: #080808;
	--main-color: #02a0ff;
	--secondary-color: #00588f;

	--grey-main-color: #7d7d7d;
	/* A medium grey */
	--grey-secondary-color: rgba(128, 128, 128, 0.555);
	/* Grey with opacity */

	--offwhite: #b1b0b0;
	--btncolor: #222835;
	--btnborder: #2c3342;

	--lightgreyhover: #222835;
	--lightgrey: #222835;
	--lightgreyhover: #222835;
	--lightergrey: #2c3342;

	--purple: purple;
	--orange: orange;
}

html {
	background: var(--bg-main);
	color: var(--text-color);
	font-family: Arial;
	transition: 0.7s;
}

::-webkit-scrollbar {
	display: none
}

a {
	text-decoration: none;
	color: var(--text-color);
}

/*****************            Index Styling                *******************/
.navbar {
	display: flex;
	width: 100%;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
	padding: 20px 150px;
	background: var(--bg-secondary);
	transition: 0.3s ease-in-out;
}

.navbar a {
	text-decoration: none;
}

.navbar .menu-mobile {
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	align-items: center;
}

.navbar .menu-mobile .logo {
	display: flex;
	flex-direction: row;
	justify-content: left;
	align-items: center;
	gap: 10px;
}

.navbar .menu-mobile .logo img {
	max-height: 50px;
	height: auto;
}

.navbar .menu-mobile .logo h3 {
	color: var(--text-color);
	font-weight: 900;
	font-size: 25px;
	text-transform: capitalize;
}

.navbar .menu-mobile .logo h3 span {
	color: var(--main-color);
}

.navbar .links {
	display: flex;
	flex-direction: row;
	gap: 30px;
	transition: 0.3s ease-in-out;
}

.navbar .links .link {
	color: var(--offwhite);
	font-size: 18px;
	font-weight: 600;
	text-decoration: none;
	position: relative;
	transition: 0.2s;
}

.navbar .links .link.active {
	color: var(--text-color);
}

.navbar .links .link::after {
	color: var(--text-color);
	content: "";
	position: absolute;
	bottom: -4px;
	left: 0;
	width: 0%;
	height: 3px;
	border-radius: 5px;
	background: var(--main-color);
	transition-duration: 300ms;
}
.navbar .links .link.active::after {
	content: "";
	position: absolute;
	bottom: -4px;
	left: 0;
	width: 100%;
	height: 3px;
	border-radius: 5px;
	background: var(--main-color);
}

.navbar .links .link:not(.active):hover {
	color: var(--text-color);
}
.navbar .links .link:not(.active):hover::after {
	color: var(--text-color);
	content: "";
	position: absolute;
	bottom: -4px;
	left: 0;
	width: 40%;
	height: 3px;
	border-radius: 5px;
	background: var(--main-color);
}


.navbar .links .link.ca {
	color: transparent!important;
}
.navbar .links .link.ca:before {
	color: white;
	content: "Client Area";
	background: var(--secondary-color);
	height: 200%;
	width: 120%;
	position: absolute;
	transform: translate(0%, -25%);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 1rem;
	border-radius: 1rem;
	border: solid 3px var(--main-color);
	transition-duration: 250ms;
}
.navbar .links .link.ca:hover:before {
	/*border: solid 3px var(--main-color);*/
	background: var(--main-color);
	filter: brightness(1.1);
	box-shadow: 0 0 10px var(--main-color);
}
.navbar .links .link.ca:after {
	display: none;
}

.navbar .menu-mobile .hamburger {
	color: var(--text-color);
	font-size: 20px;
	cursor: pointer;
	transition: 0.5s;
	display: none;
}

.navbar .menu-mobile .hamburger:hover {
	opacity: 0.8;
}

.hamburger {
	width: 3rem;
	height: 3rem;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--secondary-color);
	border: 3px solid var(--main-color);
	border-radius: 10px;
	cursor: pointer;
}

.navbar.active {
	max-height: 1000px;
}

.navbar.active .links {
	opacity: 1;
	z-index: 2;
}


/* @media - Part 0 : WE FORGOT TO LABEL THIS ONE */
@media screen and (max-width: 1625px) {
	.navbar {
		padding: 20px 90px;
	}
}

@media screen and (max-width: 819px) {
	.navbar {
		padding: 20px 30px;
	}
}

@media screen and (max-width: 867px) {
	.navbar {
		flex-direction: column;
		gap: 30px;
		max-height: 90px;
	}

	.navbar .menu-mobile {
		width: 100%;
	}
	
	.navbar .links .link.ca:before {
		width: 100%;
	}

	.navbar .menu-mobile .hamburger {
		display: flex;
	}

	.navbar .links {
		flex-direction: column;
		order: 2;
		width: 100%;
		opacity: 0;
		z-index: -1;
	}
}

.fluffix-company-head,
.category-header-owo {
	padding: 3rem 0.5rem;
	background-color: var(--bg-dark);
}

.fluffix-company-title,
.category-header-owo .big-blue {
	font-size: 3rem;
	font-weight: 900;
	text-transform: uppercase;
	color: var(--main-color);
	text-align: center;
}

.fluffix-company-headtext,
.category-header-owo .subtext {
	color: var(--offwhite);
	font-weight: 600;
	margin: auto;
	text-align: center;
	width: fit-content;
}

@media only screen and (max-width: 949px) {
	.fluffix-company-title,
	.category-header-owo .big-blue	{
		font-size: 2rem;
		/* Adjust the size as needed */
	}
}

@media only screen and (min-width: 950px) {
	.fluffix-company-head,
	.category-header-owo {
		padding: 8rem 0.5rem;
		background-color: var(--bg-dark);
	}
}

@media only screen and (min-width: 1250px) {
	.fluffix-company-head,
	.category-header-owo {
		padding: 8rem 0.5rem;
		background-color: var(--bg-dark);
	}
}


/*****************            Footer                 *******************/

/*Footer*/
#footer {
	padding: 20px 150px;
	width: 100%;
	display: flex;
	flex-direction: row;
	justify-content: space-between;
	background: var(--bg-secondary);
	position: relative;
}

#footer .fancy {
	position: absolute;
	width: 275px;
	height: 50%;
	left: 50%;
	background: var(--bg-main);
	top: 0;
	transform: translateX(-50%);
}

#footer .fancy .part1 {
	position: absolute;
	width: 25px;
	height: 100%;
	left: calc(50% - 275px / 2);
	background: var(--bg-secondary);
	top: 0;
	transform: translateX(-50%);
	border-radius: 0 10px 0 0;
}

#footer .fancy .part2 {
	position: absolute;
	width: 25px;
	height: 100%;
	left: calc(50% + 275px / 2);
	background: var(--bg-secondary);
	top: 0;
	transform: translateX(-50%);
	border-radius: 10px 0 0 0;
}

#footer .fancy .part3 {
	position: absolute;
	width: 250px;
	height: 100%;
	left: 50%;
	background: var(--bg-main);
	top: 50%;
	transform: translateX(-50%);
	border-radius: 0 0 15px 15px;
}

#footer .fancy .logo {
	position: absolute;
	height: 150%;
	left: 50%;
	top: 20%;
	transform: translate(-50%, -50%);
}

#footer p {
	color: var(--text-color);
	font-size: 17px;
}

#footer p span {
	color: var(--text-color);
}

#footer .social-links {
	display: flex;
	flex-direction: row;
	gap: 15px;
}

#footer .social-links .link {
	color: var(--text-color);
	text-decoration: none;
	font-size: 20px;
	transition: 0.2s;
}

#footer .social-links:hover {
	color: var(--offwhite)
}

#footer .social-links .link:hover {
	color: var(--main-color);
}


/* @media - Part I : The Jounery */
@media screen and (max-width: 1625px) {
	#footer {
		padding: 20px 90px;
	}
}

@media screen and (max-width: 819px) {
	#footer {
		padding: 20px 30px;
	}
}

@media screen and (max-width: 564px) {
	#footer {
		flex-direction: column;
		gap: 30px;
		align-items: center;
		justify-content: center;
		text-align: center;
	}
}


/*****************            HERO AND INDEX                *******************/
.hero {
	background: url('/i/hero-bg.png') no-repeat center center fixed;
	background-size: cover;
	background-position: center;
	height: 80vh;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: white;
}

.hero-content {
	max-width: 80%;
	margin: 0 auto;
}

.hero h1 {
	font-size: 3rem;
	margin-bottom: 1rem;
}

.hero p {
	font-size: 1.5rem;
	margin-bottom: 2rem;
}

.hero-content img {
	width: 300px;
	padding: 20px;
}

.cta-button {
	background-color: var(--main-color);
	color: white;
	padding: 0.75rem 1.5rem;
	text-decoration: none;
	border-radius: 0.25rem;
	font-size: 1rem;
	border: 3px solid var(--main-color);
    transition-duration: 200ms;
}
.cta-button:hover {
    filter: brightness(1.2);
    box-shadow: 0 0 20px var(--main-color);
}

/* @media - Part II : Journey* */
@media (max-width: 768px) {
	.hero-content img {
		width: 300px;
	}

	.hero h1 {
		font-size: 2rem;
	}

	.hero p {
		font-size: 1.25rem;
	}

	.cta-button {
		padding: 0.5rem 1rem;
		font-size: 0.875rem;
	}
}

@media (max-width: 480px) {
	.hero h1 {
		font-size: 1.5rem;
	}

	.hero p {
		font-size: 1rem;
	}

	.cta-button {
		padding: 0.5rem 0.75rem;
		font-size: 0.75rem;
	}
}

.index-titles {
	color: var(--main-color);
	font-size: 39px;
	font-weight: 900;
	padding-top: 45px;
	padding: 0 15px;
	text-transform: uppercase;
	/* Default for mobile devices */
	margin-left: 0;
	text-align: center;
}

.index-subtitles {
	color: var(--offwhite);
	padding: 0 15px;
	font-size: 20px;
	font-weight: 600;
	/* Default for mobile devices */
	margin-left: 0;
	text-align: center;
}

/* Apply margin-left for tablets and desktops */
/* @media (min-width: 768px) {
    .index-titles {
        margin-left: 50px;
    }

    .index-subtitles {
        margin-left: 50px;
    }
} */
/*****************            Location Map                *******************/
.map-container {
	position: relative;
	margin-top: 60px;
	width: 100%;
	height: auto;
	display: flex;
	justify-content: center;
}

.map-image {
	height: 600px;
	width: 1000px;
}

.ping-location {
	position: absolute;
}

.california {
	top: 40%;
	left: 31.4%;
}

.newyork {
	top: 35%;
	left: 37.4%;
}

/*

  .singapore {
    top: 64%;
    left: 76.5%;
  } */

.ping-group {
	position: relative;
}

.ping-icon {
	width: 20px;
	height: 20px;
	background-color: #39a6ff;
	border-radius: 50%;
	position: relative;
	cursor: pointer;
}

.ping-icon::before {
	content: '';
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border-radius: 50%;
	background-color: rgba(57, 166, 255, 0.6);
	animation: ping-pulse 2s infinite;
}

@keyframes ping-pulse {
	0% {
		transform: scale(1);
		opacity: 0.6;
	}

	100% {
		transform: scale(2.5);
		opacity: 0;
	}
}

.tooltip {
	position: absolute;
	top: 50px;
	left: -25px;
	transform: scale(0);
	transition: all 0.3s ease-in-out;
	border: 2px solid #39a6ff;
	background-color: #1c212c;
	color: #fff;
	padding: 15px 25px;
	border-radius: 8px;
	z-index: 20;
	width: auto;
}

/* @media - Part III : Do phones work? */
@media (max-width: 600px) {
	.map-image {
		width: 100%;
		height: auto;
	}
	.ping-icon {
		width: 25px;
		height: 25px;
	}
	.california {
		top: 40%;
		left: 13.4%;
	}
	.newyork {
		top: 35%;
		left: 25.4%;
	}
	.tooltip {
		font-size: 14px;
		padding: 10px 15px;
	}
}


.service-card-container {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1.5rem;
	padding: 2rem;
	margin: 0 auto;
	max-width: 940px;
	width: 100%;
}

.service-card {
	width: 100%;
	height: 350px;
	display: flex;
	flex-direction: column;
	align-items: center;
	box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
	background-size: cover;
	background-position: center;
	border-radius: 0.5rem;
	overflow: hidden;
	position: relative;
	background-image: url("/i/loading.gif");
	transition-duration: 300ms;
}
.service-card:hover {
	transform: scale(1.05);
}
.service-card[glow]:hover {
    box-shadow: 0 0 10px var(--main-color);
}

.service-card .card-content {
	width: 100%;
	padding: 1rem;
	backdrop-filter: blur(5px);
	background-color: rgba(0, 0, 0, 0.7);
	text-align: center;
	position: absolute;
	bottom: 0;
	left: 0;
}

.service-card .service-title {
	font-size: 1.5rem;
	color: #ffffff;
	margin-bottom: 0.5rem;
}

.service-card .service-price {
	font-size: 1.2rem;
	color: var(--main-color);
}
.service-card .service-subtext {
    color: var(--grey-main-color);
    font-size: 0.8rem;
}
.service-card:has(.service-subtext) .service-title {
	font-size: 1.25rem;
}
.service-card:has(.service-subtext) .service-price {
	font-size: 1rem;
}

.plan-tabs {
    display: flex;
    gap: 20px;
    width: 100%;
    max-width: 1200px;
    margin: 0 auto;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    padding: 20px;
}

.plan-tabs a,
.plan-tabs button {
    background-color: var(--btncolor);
    color: #fff;
    border: 3px solid var(--btnborder);
    border-radius: 5px;
    padding: 10px 20px;
    cursor: pointer;
    font-size: large;
    text-transform: uppercase;
    transition-duration: 300ms;
    font-weight: 800;
}

.plan-tabs a.selected,
.plan-tabs a:hover,
.plan-tabs button.selected,
.plan-tabs button:hover {
    background-color: var(--secondary-color);
    border-color: var(--main-color);
}

.plan-tabs a:active, .plan-tabs a:focus,
.plan-tabs button:active, .plan-tabs button:focus {
    filter: brightness(1.5);
}

/* @media - Part IV : The Great Movening */
@media (max-width: 768px) {
	.service-card-container {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (max-width: 1110px) {
	#footer .fancy { display:none }
	#footer .fancy * { display:none }
}

@media (max-width: 1420px) {
	.error text {
		width: 80%!important;
	}
	.error img {
		opacity: 0;
	}
}
@media (max-width: 480px) {
	.service-card-container {
		grid-template-columns: 1fr;
	}
}

#scroll-meter {
	position: fixed;
	bottom: 20px;
	right: 20px;
	height: 5px;
	width: 100px;
	background: var(--text-color);
	border-radius: 10px;
}
#scroll-progress {
	width: 0;
	height: 100%;
	background: #39a6ff;
	transition: background-color 0.2s ease-in-out, width 0.2s ease-in-out;
	border-radius: 10px;
}
#back-to-top {
	position: fixed;
	bottom: 70px;
	right: 20px;
	display: none;
	background-color: var(--main-color);
	color: white;
	border: none;
	border-radius: 10%;
	padding: 10px;
	font-size: 20px;
	cursor: pointer;
	box-shadow: 0px 4px 6px rgba(0, 0, 0, 0.1);
	width: 40px;
	transition-duration: 300ms;
}
#back-to-top:hover {
	background-color: var(--secondary-color);
}


.fluffix-hosting-plan-container,
.plastic-container-of-bois {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 20px;
	width: 100%;
	max-width: 1200px;
	margin: 0 auto;
}


.fluffix-hosting-plan-item,
.plan {
	background-color: var(--bg-secondary);
	padding: 20px;
	border-radius: 8px;
	text-align: center;
	transition: transform 0.3s ease;
	transition-duration: 300ms;
}
.fluffix-hosting-plan-item:hover, .plan:hover {
	transform: scale(1.025);
}

.fluffix-hosting-plan-item.oos:hover,
.plan.oos:hover
{ transform: none }
.fluffix-hosting-plan-item.oos img,
.plan.oos img
{ filter: blur(1px) grayscale(.8) }
.fluffix-hosting-plan-item.oos .fluffix-hosting-order-btn,
.plan.oos .PICKME-CHOOSEME-LOVEME
{ filter: grayscale(.5)!important }
.fluffix-hosting-plan-item.oos .fluffix-hosting-plan-title,
.plan.oos .title
{ filter: grayscale(.4) }


.fluffix-hosting-plan-image,
.plan .view {
	width: 100%;
	overflow: hidden;
	border-radius: 8px;
	margin-bottom: 15px;
}

.fluffix-hosting-plan-image img,
.plan .view img {
	width: 100%;
	display: block;
	aspect-ratio: 1;
    object-fit: cover;
    background-image: var(--recover);
    background-size: cover;
    background-position: center;
	background-repeat: no-repeat;
}

.fluffix-hosting-plan-content,
.idea {
	background-color: var(--lightergrey);
	padding: 15px;
	border-radius: 8px;
}

.fluffix-hosting-plan-title,
.plan .title {
	font-size: 1.5em;
	color: var(--main-color);
	margin-bottom: 10px;
	font-weight: 900;
	text-transform: uppercase;
}

.fluffix-hosting-plan-price,
.plan .price {
	font-size: 1.8em;
	color: var(--text-color);
	font-weight: 700;
	text-transform: capitalize;
	margin-bottom: 15px;
}

.fluffix-hosting-plan-specs,
.plan .specs {
	text-align: center;
	color: var(--offwhite);
}

.fluffix-hosting-spec-list,
.plan .spec-list {
	list-style: none;
	padding-left: 0;
}

.fluffix-hosting-spec-list li,
.plan .spec-list li {
	padding: 5px 20%;
	font-size: 1.1em;
	text-align: left;
}

/* @media - Part 0.5 : The Great Forgettoning, again */
@media (max-width: 1200px) {
	.fluffix-hosting-plan-container, .plastic-container-of-bois {
		grid-template-columns: 1fr 1fr 1fr;
	}
}

@media (max-width: 900px) {
	.fluffix-hosting-plan-container, .plastic-container-of-bois {
		grid-template-columns: 1fr 1fr;
	}
}

@media (max-width: 600px) {
	.fluffix-hosting-plan-container, .plastic-container-of-bois {
		grid-template-columns: 1fr;
	}
}

.error {
    width: 100%;
    height: 600px;
    text-align: center;
    display: flex;
    justify-content: center;
    align-items: center;
    position: relative;
}
.plastic-container-of-bois .error {
    width: 80vw;
    transform: translateX(-10vw);
}
.error text {
    width: 40%;
    position: absolute;
    background: #9b2929c2;
    height: 20%;
    display: flex;
    justify-content: center;
    align-items: center;
    font-size: 130%;
    border: 1px solid #e4ab0ebd;
    border-radius: 16px;
	transition-duration: 300ms;
}
.error img {
    height: 100%;
    position: absolute;
    margin-left: 40%;
	transition-duration: 300ms;
}

.fluffix-hosting-order-btn,
.PICKME-CHOOSEME-LOVEME {
	display: inline-block;
	background-color: var(--main-color);
	color: var(--text-color);
	padding: 10px 20px;
	text-align: center;
	font-size: 1.2em;
	border-radius: 5px;
	margin-top: 20px;
	text-transform: uppercase;
	text-decoration: none;
	transition: background-color 0.3s ease;
	transition-duration: 325ms, 325ms;
	transition-property: filter, box-shadow;
}
.fluffix-hosting-order-btn:hover,
.PICKME-CHOOSEME-LOVEME:hover {
	filter: brightness(1.1);
    box-shadow: 0 0 10px var(--main-color);
}


#testimonials {
	padding: 40px;
	text-align: center;
}

.testimonial-container {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	/* Default: 3 columns */
	gap: 20px;
	max-width: 1200px;
	margin: 0 auto;
}

.testimonial {
	position: relative;
	display: flex;
	flex-direction: column;
	/* Stack client-info and testimonial-content vertically */
	align-items: center;
	padding: 20px;
	padding-bottom: 40px;
	border: 3px solid var(--btnborder);
	border-radius: 8px;
	background-color: var(--btncolor);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
}

.client-info {
	display: flex;
	flex-direction: column;
	align-items: center;
	margin-bottom: 20px;
	/* Space between client-info and testimonial-content */
}

.client-info img {
	border-radius: 50%;
	width: 80px;
	height: 80px;
	margin-bottom: 10px;
	/* Space between profile picture and client name */
}

.client-info p {
	font-weight: bold;
	color: var(--main-color);
}

.testimonial-content {
	max-width: 500px;
}

.testimonial-content p {
	font-style: italic;
	color: var(--text-color);
	margin-bottom: 10px;
	/* Space between message and rating */
}

.rating {
    margin: 0;
    position: absolute;
    transform: translate(-50%, -50%);
    bottom: 5px;
    left: 50%;
}

.rating i {
	color: #ffcc00;
	/* Star color */
	font-size: 20px;
	/* Adjust size if needed */
}
img {
    user-select: none;
    -webkit-user-drag: none;
}

/* Firefox */
* {
    scrollbar-width: thin;
    scrollbar-color: var(--main-color) var(--bg-secondary);
}

/* Chromium, Safari */
*::-webkit-scrollbar {
    width: 16px;
}

*::-webkit-scrollbar-track {
    background: var(--bg-secondary);
}

*::-webkit-scrollbar-thumb {
    background-color: var(--main-color);
    border-radius: 10px;
    border: none;
}

/* Media Queries */
@media (max-width: 1024px) {

	/* Tablets and small desktops */
	.testimonial-container {
		grid-template-columns: repeat(2, 1fr);
		/* 2 columns */
	}
}

@media (max-width: 768px) {

	/* Mobile devices */
	.testimonial-container {
		grid-template-columns: 1fr;
		/* 1 column */
	}
}