:root {
   color-scheme: light;
   --color-cyan: #00b4d8;
   --color-magenta: #e91e63;
   --color-yellow: #ffd700;
   --color-black: #1a1a1a;
   --color-white: #ffffff;
   --color-gray-light: #f5f5f5;
   --color-gray-dark: #333333;
   --font-primary: "Poppins", sans-serif;
   --font-default: "Noto Sans", sans-serif --font-size-base-nav: 15px;
   --font-size-base: 16px;
   --font-size-lg: 18px;
   --font-size-xl: 24px;
   --font-size-2xl: 32px;
   --font-size-3xl: 40px;
   --font-size-5xl: 72px;
   --spacing-xs: 8px;
   --spacing-sm: 12px;
   --spacing-md: 16px;
   --spacing-lg: 24px;
   --spacing-xl: 32px;
   --spacing-2xl: 48px;
   --transition: all 0.3s ease;
   --shadow: 0 4px 6px rgba(0, 0, 0, 0.1);
   --shadow-lg: 0 10px 25px rgba(0, 0, 0, 0.15);
}
* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}
html {
   scroll-behavior: smooth;
}
body {
   font-family: var(--font-default);
   font-size: var(--font-size-base);
   line-height: 1.6;
   color: var(--color-gray-dark);
   background-color: var(--color-white);
}
body,
html {
   overflow-x: hidden;
   width: 100%;
   position: relative;
}
.container {
   max-width: 95%;
   margin: 0 auto !important;
   padding: 0 var(--spacing-md);
}
.services-title {
   display: flex;
   flex-direction: column;
   justify-content: center;
   text-align: center;
   margin-top: 50px;
}
.services-title .container {
   display: flex !important;
   flex-direction: column;
   align-items: center;
}
.services-title p {
   display: flex;
   font-size: var(--font-size-lg);
   max-width: 800px;
   text-align: center;
}
.header {
   background: var(--color-white);
   box-shadow: var(--shadow);
}
.header .container {
   display: flex;
   justify-content: space-between;
   align-items: center;
   padding: var(--spacing-xs);
}
.logo {
   display: flex;
   align-items: center;
   text-decoration: none;
   transition: var(--transition);
}
.logo-icon {
   display: flex;
   justify-content: center;
   align-items: center;
   gap: 20px;
}
.logo-icon img {
   width: 70px;
   height: auto;
}
.navbar {
   display: flex;
   gap: var(--spacing-lg);
   align-items: center;
   padding: 5px 50px !important;
   background-color: #fff;
   border-bottom: 1px solid #e1e1e1;
   transition: transform 0.3s ease-in-out;
   position: fixed;
   top: 0;
   width: 100%;
   z-index: 20;
}
.nav-up {
   transform: translateY(-100%);
}
ul {
   display: flex;
   gap: 20px;
}
.nav-item {
   display: flex;
   align-items: center;
}
.navbar a {
   text-decoration: none;
   color: var(--color-gray-dark);
   font-weight: 600;
   font-size: var(--font-size-base-nav);
   transition: var(--transition);
   position: relative;
}
.navbar a:hover {
   color: var(--color-cyan);
}
.navbar a::after:not(.logo) {
   content: "";
   position: absolute;
   bottom: -5px;
   left: 0;
   width: 0;
   height: 2px;
   background: linear-gradient(90deg, var(--color-cyan), var(--color-magenta));
   transition: var(--transition);
}
.navbar a:hover::after {
   width: 100%;
}
.nav-link.active {
   font-weight: 700;
   color: var(--color-cyan) !important;
}
.hero-content {
   position: absolute;
   bottom: 0;
   top: 0;
   left: 0;
   right: 0;
   display: flex;
   justify-content: center;
   flex-direction: column;
   padding: 0 15px;
   text-align: left;
   color: var(--white);
}
.hero-container.error {
   background-image: linear-gradient(rgba(29, 53, 87, 0.7), rgba(29, 53, 87, 0.7)), url(../img/banners/hero_404.png);
   background-size: contain;
   background-position: center;
   background-repeat: no-repeat;
}
.hero-carousel {
   position: relative;
   height: 80vh;
   overflow: hidden;
}
.hero-slider {
   height: 100%;
   width: 100%;
}
.hero-container,
.hero-slide {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background-size: cover;
   background-position: center;
   background-repeat: no-repeat;
   display: flex;
   align-items: center;
   justify-content: left;
   opacity: 0;
   transition: opacity 1s ease-in-out;
   z-index: 1;
}
.hero-container.active,
.hero-slide.active {
   opacity: 1;
   z-index: 2;
}
.hero-container.about {
   background-image: linear-gradient(rgba(29, 53, 87, 0.7), rgba(29, 53, 87, 0.7));
}
.hero-content .highlight {
   color: #ffdf20;
}
.hero-mobile {
   display: none;
}
.hero-desktop {
   display: block;
}
.hero-content h1 {
   font-size: var(--font-size-3xl);
   font-weight: 900;
   margin-bottom: var(--spacing-lg);
   line-height: 60px;
   color: var(--color-white);
   letter-spacing: 1px;
   text-align: left;
   animation: 0.8s ease-out fadeInUp;
   max-width: 750px;
   text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.5);
}
.hero-content p {
   font-size: var(--font-size-xl);
   color: var(--color-white);
   margin-bottom: var(--spacing-xl);
   min-height: 75px;
   max-width: 800px;
   animation: 1s ease-out fadeInUp;
}
.hero-btns {
   display: flex;
   gap: var(--spacing-md);
   justify-content: center;
   margin-top: 20px;
}
.hero-btns a {
   width: 170px;
   font-weight: 700;
}
.hero-dots {
   position: absolute;
   bottom: 30px;
   left: 50%;
   transform: translateX(-50%);
   display: flex;
   gap: 10px;
   z-index: 10;
}
.dot {
   width: 12px;
   height: 12px;
   background: rgba(255, 255, 255, 0.942);
   border-radius: 50%;
   cursor: pointer;
   transition: background 0.3s;
}
.dot.active {
   background: var(--color-magenta);
}
@keyframes fadeInUp {
   from {
      opacity: 0;
      transform: translateY(20px);
   }
   to {
      opacity: 1;
      transform: translateY(0);
   }
}
.btn {
   display: inline-block;
   padding: var(--spacing-sm) var(--spacing-xl) !important;
   border: none;
   border-radius: 8px;
   font-size: var(--font-size-base);
   font-weight: 700;
   text-decoration: none;
   cursor: pointer;
   transition: var(--transition);
   font-family: var(--font-primary);
}
.btn-primary {
   background: linear-gradient(135deg, var(--color-cyan), var(--color-magenta));
   color: var(--color-white) !important;
   box-shadow: var(--shadow);
   transition: 0.5s ease-in;
}
.gradient-border-clip {
   background:
      linear-gradient(white, #fff) padding-box,
      linear-gradient(to right, #00008b, #9932cc) border-box;
   border-radius: 10px !important;
   border: 4px solid transparent !important;
   box-shadow: var(--shadow);
}
.btn-secondary {
   background: var(--color-white) !important;
   color: var(--color-cyan) !important;
   border: 2px solid var(--color-cyan) !important;
   box-shadow: var(--shadow-lg);
   transition: 0.5s ease-in;
}
.btn-primary:hover,
.btn-secondary:hover {
   background: var(--color-cyan) !important;
   color: var(--color-white) !important;
   box-shadow: var(--shadow-lg) !important;
}
.btn-cta {
   background: linear-gradient(135deg, var(--color-cyan), var(--color-magenta));
   color: var(--color-white) !important;
   padding: var(--spacing-sm) var(--spacing-lg) !important;
   border-radius: 8px;
   font-weight: 700;
   text-decoration: none;
   transition: var(--transition);
}
.btn-cta:hover {
   transform: scale(1.05);
}
.services-container {
   display: flex;
   flex-direction: row;
   justify-content: center;
   gap: 15px;
}
.service-type {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   width: 30%;
   background: var(--color-white);
   padding: var(--spacing-lg);
   border-radius: 12px;
   box-shadow: var(--shadow);
   transition: var(--transition);
   border-left: 4px solid var(--color-cyan);
}
.service-title {
   display: flex;
   flex-direction: row;
   align-items: center;
   margin-bottom: var(--spacing-md);
}
.service-title img {
   height: 90px;
}
.service-title h2 {
   font-size: var(--font-size-xl);
   font-weight: 700;
   margin: 0 0 20px 10px;
}
.services-list {
   display: flex;
   flex-direction: column;
   text-align: left;
   gap: 15px;
}
.services-list p {
   font-size: 1rem;
   font-weight: 600;
   margin-bottom: 20px;
}
.services-list ul {
   display: flex;
   flex-direction: column;
   list-style: none;
   padding-left: 0;
}
.about-list {
   display: flex;
   flex-direction: row;
   justify-content: space-between;
   text-align: left;
   width: 70%;
}
.about-list h3 {
   font-size: 18px;
   font-weight: 700;
   margin-bottom: 20px;
   text-align: center;
}
.about-list ul {
   display: flex;
   flex-direction: column;
   text-align: center;
   list-style: none;
   padding-left: 0;
   gap: 10px;
   margin-bottom: 30px;
}
.clients,
.services {
   padding: var(--spacing-2xl) 0;
   background: var(--color-gray-light);
}
.clients .container,
.services .container {
   text-align: center;
}
.clients h2,
.contact-grid h2,
.container h2,
.services h2 {
   font-size: var(--font-size-2xl);
   font-weight: 800;
   margin-bottom: var(--spacing-md);
}
.highlight {
   color: var(--color-cyan);
}
.subtitle {
   font-size: var(--font-size-lg);
   color: var(--color-gray-dark);
   margin-bottom: var(--spacing-2xl);
   opacity: 0.8;
}
.services-grid {
   display: flex;
   flex-direction: row;
   justify-content: center;
   gap: 14px;
   flex-wrap: wrap;
}
.service-card {
   display: flex;
   flex-direction: column;
   justify-content: center;
   align-items: center;
   background: var(--color-white);
   padding: var(--spacing-md);
   border-radius: 12px;
   box-shadow: var(--shadow);
   transition: var(--transition);
   border-left: 4px solid var(--color-cyan);
   width: 300px;
   min-width: 280px;
}
.card img,
.service-card img {
   width: 60px;
}
.service-card:hover {
   transform: translateY(-8px);
   box-shadow: var(--shadow-lg);
   border-left-color: var(--color-magenta);
}
.service-icon {
   font-size: 3rem;
   margin-bottom: var(--spacing-md);
}
.card h3,
.service-card h3 {
   font-size: var(--font-size-lg);
   margin-bottom: var(--spacing-md);
   color: var(--color-black);
}
.service-card p {
   color: var(--color-gray-dark);
   margin-bottom: var(--spacing-md);
   opacity: 0.8;
   min-height: 72px;
}
.link {
   color: var(--color-cyan);
   text-decoration: none;
   font-weight: 600;
   transition: var(--transition);
}
.link:hover {
   color: var(--color-magenta);
}
.scroller {
   max-width: 760px;
}
.scroller__inner {
   display: flex;
   flex-wrap: wrap;
}
.scroller[data-animated="true"] {
   overflow: hidden;
   -webkit-mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent);
   mask: linear-gradient(90deg, transparent, white 20%, white 80%, transparent);
}
.scroller[data-animated="true"] .scroller__inner {
   width: max-content;
   flex-wrap: nowrap;
   animation: scroll var(--_animation-duration, 40s) var(--_animation-direction, forwards) linear infinite;
}
.scroller[data-direction="right"] {
   --_animation-direction: reverse;
}
.scroller[data-direction="left"] {
   --_animation-direction: forwards;
}
.scroller[data-speed="fast"] {
   --_animation-duration: 20s;
}
.scroller[data-speed="slow"] {
   --_animation-duration: 60s;
}
@keyframes scroll {
   to {
      transform: translate(calc(-50% - 0.5rem));
   }
}
.tag-list {
   margin: 0;
   padding-inline: 0;
   list-style: none;
   background-color: transparent;
}
.tag-list img {
   width: 80%;
   object-fit: scale-down;
}
.cta {
   background: linear-gradient(135deg, var(--color-cyan), var(--color-magenta));
   color: var(--color-white);
   padding: var(--spacing-2xl) var(--spacing-md);
   text-align: center;
}
.cta h2 {
   font-size: var(--font-size-2xl);
   font-weight: 900;
   margin-bottom: var(--spacing-md);
}
.cta p {
   font-size: var(--font-size-lg);
   margin-bottom: var(--spacing-xl);
   opacity: 0.95;
}
.page-header {
   background: linear-gradient(135deg, var(--color-cyan), var(--color-magenta));
   color: var(--color-white);
   padding: var(--spacing-xl) var(--spacing-md);
   text-align: center;
}
.page-header h1 {
   font-size: var(--font-size-3xl);
   font-weight: 900;
   margin-bottom: var(--spacing-md);
}
.page-header p {
   font-size: var(--font-size-lg);
   opacity: 0.9;
}
.contact-section {
   display: flex;
   flex-direction: row;
   margin-top: 60px;
}
.contact-grid {
   display: flex;
   flex-direction: row;
   justify-content: space-between;
   gap: var(--spacing-2xl);
}
.contact-info h2 {
   font-size: var(--font-size-2xl);
   font-weight: 900;
   margin-bottom: var(--spacing-xl);
}
.contact-info .highlight {
   color: var(--color-cyan);
}
.info-card {
   background: var(--color-gray-light);
   padding: var(--spacing-lg);
   border-radius: 8px;
   margin-bottom: var(--spacing-lg);
   border-left: 4px solid var(--color-cyan);
}
.info-card h3 {
   font-size: var(--font-size-lg);
   color: var(--color-black);
   margin: 0;
}
.separator {
   margin: 0 10px;
}
.info-card p {
   color: var(--color-gray-dark);
   margin: var(--spacing-xs) 0;
}
.contact-form-wrapper,
.contact-info {
   display: flex;
   flex-direction: column;
   width: 50%;
}
.contact-detail {
   display: inline-flex;
   flex-direction: row;
   justify-items: center;
   align-items: center;
}
.contact-method {
   display: inline-flex;
   flex-direction: row;
   align-items: center;
}
.contact-detail h3 {
   display: flex;
   margin-right: 5px;
}
.contact-form-wrapper h2 {
   font-size: var(--font-size-2xl);
   font-weight: 900;
   margin-bottom: var(--spacing-xl);
}
.contact-form-wrapper .highlight {
   color: var(--color-magenta);
}
.contact-form {
   margin-bottom: 50px;
   display: flex;
   flex-direction: column;
   width: 100%;
   background: var(--color-gray-light);
   padding: var(--spacing-xl);
   border-radius: 12px;
   box-shadow: var(--shadow);
}
.form-group {
   margin-bottom: var(--spacing-lg);
}
.form-group label {
   display: block;
   font-weight: 700;
   margin-bottom: var(--spacing-xs);
   color: var(--color-black);
}
.form-group input,
.form-group select,
.form-group textarea {
   width: 100%;
   padding: var(--spacing-xs);
   border: 2px solid #ddd;
   border-radius: 8px;
   font-family: var(--font-primary);
   font-size: var(--font-size-base);
   transition: var(--transition);
}
.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus {
   outline: 0;
   border-color: var(--color-cyan);
   box-shadow: 0 0 0 3px rgba(0, 180, 216, 0.1);
}
.form-group textarea {
   resize: vertical;
}
.form-message {
   margin-top: var(--spacing-lg);
   padding: var(--spacing-md);
   border-radius: 8px;
   display: none;
   font-weight: 600;
}
.form-message.success {
   background-color: #d4edda;
   color: #155724;
   border: 1px solid #c3e6cb;
   display: block;
}
.form-message.error {
   background-color: #f8d7da;
   color: #721c24;
   border: 1px solid #f5c6cb;
   display: block;
}
.faq-container {
   max-width: 800px;
   margin: 0 auto;
}
.faq-item {
   border-bottom: 1px solid #eee;
   margin-bottom: 10px;
}
.faq-question {
   width: 100%;
   padding: 20px;
   background: 0 0;
   border: none;
   display: flex;
   justify-content: space-between;
   align-items: center;
   cursor: pointer;
   font-size: 1.1rem;
   font-weight: 600;
   color: #333;
   transition: 0.3s;
   text-align: left;
}
.faq-question:hover {
   color: var(--color-cyan);
}
.faq-answer {
   max-height: 0;
   overflow: hidden;
   transition: max-height 0.3s ease-out;
   padding: 0 20px;
}
.faq-answer p {
   padding-bottom: 20px;
   color: #666;
   margin: 0;
}
.faq-item.active .faq-answer {
   max-height: 200px;
}
.faq-item.active i {
   transform: rotate(180deg);
   transition: 0.3s;
}
.portfolio-grid {
   justify-content: center;
}
#footer {
   font-size: 14px;
   background: #6b85b3;
}
#footer .footer-newsletter {
   padding: 50px 0;
   background: #f3f5fa;
   text-align: center;
   font-size: 15px;
   color: #444;
}
#footer .footer-newsletter h4 {
   font-size: 24px;
   margin: 0 0 20px;
   padding: 0;
   line-height: 1;
   font-weight: 600;
   color: #37517e;
}
#footer .footer-newsletter form {
   margin-top: 30px;
   background: #fff;
   padding: 6px 10px;
   position: relative;
   border-radius: 50px;
   box-shadow: 0 2px 15px rgba(0, 0, 0, 0.06);
   text-align: left;
}
#footer .footer-newsletter form input[type="email"] {
   border: 0;
   padding: 4px 8px;
   width: calc(100% - 100px);
}
#footer .footer-newsletter form input[type="submit"] {
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   border: 0;
   background: #47b2e4;
   font-size: 16px;
   padding: 0 20px;
   color: #fff;
   transition: 0.3s;
   border-radius: 50px;
   box-shadow: 0 2px 15px rgba(0, 0, 0, 0.1);
}
#footer .footer-newsletter form input[type="submit"]:hover {
   background: #209dd8;
}
#footer .footer-top {
   padding: 60px 0 30px;
   background: #fff;
}
#footer .footer-top .footer-contact {
   margin-bottom: 30px;
}
.logo-footer {
   margin: 0 0 10px -10px;
}
#footer .footer-top .footer-contact p {
   font-size: 14px;
   line-height: 24px;
   margin-bottom: 0;
   font-family: Jost, sans-serif;
   color: #5e5e5e;
}
#footer .footer-top h4 {
   font-size: 16px;
   font-weight: 700;
   color: #37517e;
   position: relative;
   padding-bottom: 12px;
}
.footer-links {
   display: flex !important;
   flex-direction: column !important;
   margin-bottom: 30px;
}
.footer-links ul {
   display: flex;
   flex-direction: column;
   list-style: none;
   padding: 0;
   margin: 0;
   gap: 5px;
}
.footer-links ul i {
   padding-right: 2px;
   color: #47b2e4;
   font-size: 18px;
   line-height: 1;
}
.footer-links ul li {
   padding: 5px 0;
   display: flex;
   align-items: center;
}
.footer-links ul li:first-child {
   padding-top: 0;
}
.footer-links ul a {
   color: #777;
   transition: 0.3s;
   display: inline-block;
   line-height: 1;
   text-decoration: none;
   font-weight: 600;
}
.footer-links ul a:hover {
   text-decoration: none;
   color: #47b2e4;
}
#footer .footer-top .social-links a {
   font-size: 18px;
   display: inline-block;
   background: #47b2e4;
   color: #fff;
   line-height: 1;
   padding: 8px 0;
   margin-right: 4px;
   border-radius: 50%;
   text-align: center;
   width: 36px;
   height: 36px;
   transition: 0.3s;
}
#footer .footer-top .social-links a:hover {
   background: #38a6d9;
   color: #fff;
   text-decoration: none;
}
#footer .footer-bottom {
   display: flex;
   flex-direction: row;
   align-content: center;
   justify-content: center;
   align-items: center;
   padding: 20px 85px;
   color: #fff;
}
.develop {
   display: inline-flex;
   align-items: center;
   justify-items: center;
}
.develop p {
   margin: 0 10px 0 0;
   position: relative;
   font-size: 0.8rem;
}
.develop img {
   width: 100px;
   filter: grayscale(100%);
}
@media (max-width: 768px) {
   #footer .footer-bottom {
      padding-top: 20px;
      padding-bottom: 20px;
   }
   #footer .copyright,
   #footer .credits {
      text-align: center;
      float: none;
   }
   #footer .credits {
      padding-top: 4px;
   }
}
@keyframes fadeInUp {
   from {
      opacity: 0;
      transform: translateY(30px);
   }
   to {
      opacity: 1;
      transform: translateY(0);
   }
}
.fade-in-up {
   animation: 0.6s ease-out fadeInUp;
}
.grid-2 {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: var(--spacing-lg);
}
.grid-3 {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
   gap: var(--spacing-lg);
}
.grid-4 {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
   gap: var(--spacing-md);
}
.card {
   display: flex;
   justify-content: center;
   align-items: center;
   flex-direction: column;
   gap: var(--spacing-sm);
   background: var(--color-white);
   padding: var(--spacing-lg);
   border-radius: 12px;
   box-shadow: var(--shadow);
   transition: var(--transition);
   text-align: center;
}
.card:hover {
   box-shadow: var(--shadow-lg);
   transform: translateY(-4px);
}
.section {
   padding: var(--spacing-2xl) var(--spacing-md);
}
.section-light {
   background: var(--color-gray-light);
}
.section-dark {
   background: var(--color-black);
   color: var(--color-white);
}
.section-gradient {
   background: linear-gradient(135deg, var(--color-cyan), var(--color-magenta));
   color: var(--color-white);
}
.about-cards,
.why-us {
   display: flex;
   flex-direction: row;
   gap: 10px;
}
.title-card {
   display: flex;
   align-items: flex-end;
   gap: 10px;
   margin-bottom: 10px;
   min-height: 40px;
}
.title-card h3 {
   margin: 0;
   font-size: 1.15rem;
   text-transform: capitalize;
   line-height: 1.2;
}
.title-card i {
   font-size: 1.5rem;
   padding-bottom: 3px;
   color: var(--color-cyan);
}
.card p {
   margin: 0;
   font-size: 0.95rem;
   line-height: 1.6;
   color: #555;
   flex-grow: 1;
}
.about {
   display: flex;
   flex-direction: column;
   align-items: center;
   justify-content: center;
   margin: 0 auto;
}
.about img {
   max-width: 450px;
   border-radius: 20px;
}
.btn-whatsapp {
   position: fixed;
   display: flex;
   right: 30px;
   bottom: 20px;
   z-index: 5;
}
.btn-whatsapp a {
   text-decoration: none;
   display: block;
}
.btn-whatsapp img {
   width: 45px;
   z-index: 5;
}
.back-to-top {
   display: none;
   position: fixed;
   width: 40px;
   height: 40px;
   right: 30px;
   bottom: 100px;
   z-index: 6;
   border-radius: 50%;
   display: flex;
   justify-content: center;
   align-items: center;
   padding: 0;
   text-align: center;
   cursor: pointer;
}
.btn-back-to-top {
   color: #fff;
   background-color: var(--color-cyan);
   border: 1px solid var(--color-cyan);
   transition: 0.3s;
   text-decoration: none;
}
.btn-back-to-top:hover {
   color: #fff;
   background-color: var(--color-magenta);
   border-color: var(--color-magenta);
}
