:root {
   --teal: #008f8f;
   --teal-dark: #025f5f;
   --teal-light: #5b8f8f;
   --text: #4a4b4c;
   --title: #212121;
   --white-link: #e4fbfd;
   --radius: 20px;
}

@media (max-width: 991.98px) {
  .offcanvas-lg.offcanvas-end {
      --bs-offcanvas-width: 90%;
  }
}

* {
   box-sizing: border-box;
}

body {
   margin: 0;
   font-family: "Inter", sans-serif;
   font-size: 16px;
   color: var(--text);
   overflow-x: hidden;
}

.container,
.container-sm,
.container-md,
.container-lg,
.container-xl,
.container-xxl {
   max-width: 1140px;
}

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

h1,
h2,
h3 {
   color: var(--title);
   font-weight: 600;
   margin-bottom: 1.2rem;
}
h4,
h5,
h6 {
   color: var(--title);
   font-weight: 600;
   margin-bottom: 1rem;
}

h1 {
   font-size: 4rem;
}

h2 {
   font-size: 2.4rem;
}

h3 {
   font-size: 2rem;
}

h4 {
   font-size: 1.6rem;
}

h5 {
   font-size: 1.4rem;
}

h6 {
   font-size: 1.2rem;
}

.ap-title,
.ap-sub-title {
   color: var(--title);
   font-weight: 500;
   margin-bottom: 1.2rem;
}

.ap-title {
   font-size: 3rem;
   line-height: 1;
}

.text-teal {
   color: var(--teal);
}
.text-teal:hover {
   color: var(--title);
}

.text-title {
   color: var(--title);
}
.text-title:hover {
   color: var(--teal);
}


/* ================================================================
   NAVBAR + LOGO
================================================================ */

@media (min-width: 1200px) {
   .container-fluid.top-container {
      margin: 0 65px;
   }
}

.navbar-custom {
   padding: 0 1.2rem;
   padding-bottom: 1rem;
   background: transparent;
   position: absolute;
   top: 0;
   left: 0;
   right: 0;
   z-index: 10;
}

@media (min-width: 992px) {
   .last-link {
      margin-right: -6px;
   }
}

@media (max-width: 991.98px) {
   .navbar-custom {
      padding: 0.8rem;
   }
}

.navbar-brand {
   margin: 15px 0;
   display: flex;
   align-items: center;
   gap: 0.5rem;
   font-weight: 600;
   font-size: 1.4rem;
   letter-spacing: 0.04em;
   text-transform: uppercase;
}

.navbar-nav {
   gap: 1.6rem;
}

.logo-emaps {
   width: 260px;
}

@media (max-width: 991.98px) {
   .logo-emaps {
      width: 180px;
   }
}

.navbar-nav .nav-link {
   font-size: 1rem;
   text-transform: uppercase;
   letter-spacing: 0.03em !important;
   padding: 0.3rem 0.75rem;
   color: var(--white-link);
}
.navbar-nav .nav-link.nav-emaps {
  text-transform: none;
  white-space: nowrap;
}

.navbar-nav .nav-link:hover,
.navbar-nav .nav-link:focus {
   color: #fff;
}

.navbar-nav .nav-link.active {
   font-weight: 700;
}

.nav-icons {
   display: flex;
   align-items: center;
   gap: 0.75rem;
}

.top-menu {
   margin-bottom: 15px;
}

@media (max-width: 991.98px) {
   .top-menu {
      margin-bottom: 0;
   }
}

.icon-btn {
   margin-top: 2px;
   font-size: 1.6rem;
   display: flex;
   align-items: center;
   gap: 0.5rem;
   padding: 0.5rem;
   border: none;
   color: var(--white-link);
   background: transparent;
   cursor: pointer;
}

.icon-btn:hover {
   color: #fff;
}

.language-selector {
   position: relative;
   display: inline-block;
}

.language-selector:hover .language-dropdown {
   display: block;
}

.language-dropdown {
   display: none;
   position: absolute;
   top: 100%;
   right: 0;
   background: #fff;
   box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
   border-radius: 10px;
   min-width: 140px;
   overflow: hidden;
}

.language-dropdown::before {
   /* Add padding bridge to prevent gap */
   content: '';
   position: absolute;
   top: -0.25rem;
   left: 0;
   right: 0;
   height: 0.25rem;
}

.language-dropdown a {
   display: block;
   padding: 0.75rem 1rem;
   color: var(--text);
   text-decoration: none;
   transition: all 0.2s;
   border-bottom: 1px solid #f0f0f0;
}

.language-dropdown a:last-child {
   border-bottom: none;
}

.language-dropdown a:hover {
   background: var(--teal);
   color: #fff;
}

.current-lang {
   font-size: 0.875rem;
   font-weight: 600;
}

.btn-trial {
   font-size: 1rem;
   text-transform: uppercase;
   letter-spacing: 0.06em;
   border-radius: var(--radius);
   color: #fff;
   padding: 0.55rem 1.8rem;
   border: 0;
   background-color: var(--title);
   font-weight: 600;
   white-space: nowrap;
}

.btn-trial:hover {
   background: #fff;
   color: var(--teal-dark);
}

.btn-trial:active {
   background: #fff !important;
   color: var(--teal-dark) !important;
}

/* For the sticky menu */
.navbar-custom.is-sticky .btn-trial:hover {
   background: var(--teal-dark);
   color: #fff;
}

.navbar-custom.is-sticky .btn-trial:active {
   background: var(--teal-dark) !important;
   color: #fff !important;
}

/* Different header for blog posts */
/* @media (min-width: 992px) {
   .navbar-post .navbar-nav .nav-link, .navbar-post .icon-btn {
      color: var(--title);
   }
   .navbar-post .navbar-nav .nav-link:hover, .navbar-post .icon-btn:hover {
      color: var(--teal);
   }
   .navbar-post .btn-trial:hover {
      background: var(--title);
      color: #fff;
   }
   .navbar-post .btn-trial:active {
      background: var(--title);
      color: #fff;
   }
} */

/* ====== OFFCANVAS ====== */

.offcanvas {
   background-color: rgba(0, 63, 64, 0.97) !important;
   color: #fff;
}

.offcanvas .nav-link {
   color: #fff !important;
   font-size: 1.1rem;
}

.offcanvas .nav-link:hover {
   color: var(--white-link) !important;
}

#offcanvasNavbar {
   background: var(--teal);
}

.offcanvas-header .btn-close {
   color: #fff;
}

/* ================================================================
   HERO 
================================================================ */

.hero-wrapper {
   position: relative;
   min-height: 100svh;
   background: radial-gradient(circle at 0 0, #018f92 0, #007d7f 35%, #00535a 100%);
   color: #fff;
   overflow: visible;
}

.hero-wrapper .carousel-item {
   position: relative;
   min-height: 100svh;
   display: flex;
   align-items: center;
}

.slide-bg-1,
.slide-bg-2,
.slide-bg-3 {
   background-size: cover;
   background-position: center;
   background-repeat: no-repeat;
}

.slide-overlay {
  position: absolute;
  z-index: 3;
  left: clamp(3rem, 13rem, 14rem);
  top: clamp(13rem, 11vh, 12rem);
  transform: none;
  width: min(60rem, 62vw);
  max-width: calc(100% - 26rem);
  color: #fff;
}

.slide-overlay h1 {
   font-size: clamp(2.2rem, 5.2vw, 5.8rem);
   font-weight: 400;
   letter-spacing: 0.02rem;
   line-height: 1.08;
   color: #fff;
   margin-bottom: 1.5rem;
}

.slide-overlay p {
   font-size: clamp(1rem, 1.2vw, 1.25rem);
   line-height: 1.55;
   color: #fff;
   margin-bottom: 0;
   max-width: 48rem;
}

.slide-overlay-right {
   position: absolute;
   z-index: 2;
   right: clamp(2rem, 7vw, 8rem);
   bottom: -2.5rem;
   top: auto;
   left: auto;
   transform: none;
   width: clamp(260px, 30vw, 560px);
   max-width: 38%;
   display: flex;
   align-items: end;
   justify-content: end;
   pointer-events: none;
}

.slide-overlay-right img {
   display: block;
   height: auto;
}

@media (min-width: 1400px) {
  .slide-overlay-right {
    right: clamp(2rem, 5vw, 8rem);
    /* width: clamp(320px, 30vw, 700px); */
    width: auto;
    max-width: 42%;
    bottom: -4rem;
  }

  .slide-overlay-right img {
        width: auto;
  }
}

.hero-bottom-bar {
   height: 3vh;
   min-height: 14px;
   background: #fff;
   width: 100%;
   margin: 0 auto;
   border-radius: 9999px 9999px 0 0;
}

@media (max-width: 1400px) {
   .slide-overlay-right img{
      width: 100%;
   }
}

@media (max-width: 1400px) {
   .hero-wrapper,
   .hero-wrapper .carousel-item {
      min-height: 860px;
   }

   .slide-overlay {
      left: 3rem;
      top: 8.5rem;
      width: min(46rem, 56vw);
      max-width: calc(100% - 20rem);
   }

   .slide-overlay-right {
      right: 1.5rem;
      bottom: -3rem;
      width: min(34vw, 500px);
      max-width: 36%;
   }
}

@media (max-width: 991.98px) {
   .hero-wrapper,
   .hero-wrapper .carousel-item {
      min-height: 760px;
   }

   .slide-overlay {
      left: 2rem;
      top: 8.5rem;
      width: min(30rem, calc(100% - 4rem));
      max-width: 58%;
      text-align: left;
   }

   .slide-overlay-right {
      right: 0.5rem;
      bottom: 13rem;
      width: min(34vw, 260px);
      max-width: 34%;
   }
}

@media (max-width: 768px) {
   .hero-wrapper,
   .hero-wrapper .carousel-item {
      min-height: 850px;
   }

   .slide-overlay {
      left: 1.25rem;
      right: 1.25rem;
      top: 8rem;
      width: auto;
      max-width: none;
      text-align: center;
   }

   .slide-overlay h1 {
      font-size: clamp(2rem, 8vw, 3rem);
      line-height: 1.15;
   }

   .slide-overlay p {
      font-size: 1rem;
      line-height: 1.5;
      max-width: 100%;
   }

   .slide-overlay-right {
      display: flex;
      right: 50%;
      left: auto;
      transform: translateX(50%);
      bottom: -4.5rem;
      width: min(62vw, 260px);
      max-width: none;
      z-index: 2;
   }

   .hero-bottom-bar {
      height: 2.3vh;
   }
}

@media (max-width: 456px) {
   .hero-wrapper,
   .hero-wrapper .carousel-item {
      min-height: 930px;
   }

   .slide-overlay {
      top: 8.5rem;
      left: 1rem;
      right: 1rem;
   }

   .slide-overlay-right {
      /* bottom: -5.5rem;
      width: min(72vw, 240px); */

      bottom: -6.5rem;
      width: min(90vw, 190px);
   }
}

/* 
.hero-bottom-bar {
   height: 3vh;
   background: #fff;
   width: 100%;
   /*max-width: 85%;*/
   /* margin: 0 auto;
   border-radius: 9999px 9999px 0 0; */
   /*box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);*/
/* } */ 


/* BACKGROUND + TEXT */

/* Backgrounds */
.slide-bg-1,
.slide-bg-2,
.slide-bg-3 {
   background-size: cover;
   background-position: center;
   background-repeat: no-repeat;
}

/* @media (max-width: 1199px) {
   .slide-overlay-right {
      display: none !important;
   }
} */

/* Desktop */
.slide-overlay h1 {
   font-size: clamp(6rem, 4vw, 4.6rem);
   font-weight: 400;
   letter-spacing: 0.1rem;
   line-height: 1.15;
   color: #fff;
   margin-bottom: 25px;
}

@media (max-width: 1600px) {
   .slide-overlay h1 {
      font-size: clamp(5.4rem, 4vw, 4.6rem);
   }
}

@media (max-width: 1539px) {
   .slide-overlay h1 {
      font-size: clamp(4.4rem, 4vw, 4.6rem);
   }
}

@media (max-width: 1399px) {
  .slide-overlay h1 {
    font-size: clamp(2.4rem, 4vw, 4.6rem);
  }
}

.slide-overlay p {
   font-size: 1.4rem;
   line-height: 1.6;
   color: #fff;
   font-weight: 400;
}

/* Large desktop: limit text width */
@media (min-width: 992px) and (max-width: 1399px) {
   .slide-overlay p {
      max-width: 86%;
   }
   .slide-overlay-right {
      bottom: auto;
   }
}
@media (min-width: 1399px) and (max-width: 1539px) {
   .slide-overlay p {
      max-width: 80%;
   }
}
@media (min-width: 1540px) and (max-width: 1814px) {
   .slide-overlay p {
      max-width: 75%;
   }
}
@media (min-width: 1815px) {
   .slide-overlay p {
      max-width: 85%
   }
}

/* HERO INDICATORS */

.hero-carousel-indicators {
   position: absolute;
   bottom: 14px;
   left: 50%;
   transform: translateX(-50%);
   display: flex;
   gap: 6px;
}

.hero-carousel-indicators button {
   width: 8px;
   height: 8px;
   border-radius: 999px;
   border: none;
   background: rgba(255, 255, 255, 0.45);
   transition: all 0.2s ease;
}

.hero-carousel-indicators button.active {
   width: 18px;
   background: #fff;
}

.custom-indicators {
   bottom: 20px;
   display: flex;
   justify-content: center;
   gap: 4%;
}

.custom-indicators [data-bs-target] {
   width: 8px;
   height: 8px;
   border-radius: 50%;
   background: #fff;
   border: none;
   opacity: 0.7;
   transition: 0.25s ease;
}

.custom-indicators .active {
   width: 12px;
   height: 12px;
   border-radius: 50%;
   background: #fff;
   opacity: 1;
}

/* ================================================================
   FLOATING BUTTONS (WHATSAPP / CHAT)
================================================================ */

.floating-actions {
   position: fixed;
   right: 18px;
   bottom: 20px;
   display: flex;
   flex-direction: row;
   align-items: center;
   gap: 8px;
   z-index: 50;
}

.floating-btn {
   width: 60px;
   height: 60px;
   border-radius: var(--radius);
   background: var(--teal);
   display: flex;
   align-items: center;
   justify-content: center;
   color: #fff;
   font-size: 1.2rem;
   cursor: pointer;
   box-shadow: 0 10px 25px rgba(0, 0, 0, 0.35);
}

.floating-btn.secondary {
   background: var(--teal);
}

.floating-btn i {
   color: #fff;
   background: transparent;
   line-height: 1;
}

@media (max-width: 991.98px) {
   .floating-btn {
      width: 35px;
      height: 35px;
   }
}

/* COOKIE-LIKE ICON BOTTOM LEFT */

.cookie-bubble {
   position: fixed;
   left: 18px;
   bottom: 20px;
   width: 50px;
   height: 50px;
   border-radius: 999px;
   background: rgba(255, 255, 255, 0.92);
   display: flex;
   align-items: center;
   justify-content: center;
   color: #6b7280;
   font-size: 1.3rem;
   box-shadow: 0 10px 25px rgba(0, 0, 0, 0.3);
   z-index: 50;
}

@media (max-width: 991.98px) {
   .cookie-bubble {
      width: 35px;
      height: 35px;
   }
}

/* ================================================================
   RESPONSIVE EXTRA (NAVBAR)
================================================================ */

@media (max-width: 991.98px) {
   /* .navbar-custom {
      background: rgba(0, 63, 64, 0.9);
   } */
   /* Different header for blog posts */
   .navbar-post {
      background: #fff;
   }
   .navbar-post .navbar-toggler {
      color: var(--teal);
      /* background-color: var(--teal); */
      border: var(--bs-border-width) solid #fff;
   }

   .hero-inner {
      padding-top: 90px;
   }

   .phone {
      transform: rotate(-6deg);
   }
}

@media (max-width: 767.98px) {
   .hero-text {
      text-align: center;
   }

   .hero-subtext {
      margin-left: auto;
      margin-right: auto;
   }

   .navbar-nav {
      margin-top: 1rem;
   }

   .nav-icons {
      margin-top: 0.75rem;
   }
}

@media (max-width: 991.98px) {
   .navbar-nav .nav-link {
      padding-top: 0.6rem;
      padding-bottom: 0.6rem;
   }

   .navbar-nav {
      gap: 1rem;
   }
}

/* ================================================================
   INTERNAL PAGES / CONTENT
================================================================ */

.img-title-container {
   position: relative;
   height: 22rem;
   background:
      var(--bg-image, none),
      radial-gradient(circle at 0 0, #018f92 0, #007d7f 35%, #00535a 100%);
   background-size: cover;
   background-position: center;
   background-repeat: no-repeat;
   overflow: hidden;
}

.img-title-container a {
   color: var(--white-link);
}

.img-title-container h1,
.img-title-container a:hover {
   color: #fff;
}

.text-container {
   position: absolute;
   top: 70%;
   left: 50%;
   transform: translate(-50%, -50%);
   color: #fff;
   width: 1140px;
   text-align: center;
}

@media (max-width: 696px) {
   .text-container {
    width: 20rem;
   }
}

/* Post-header specific overrides */
.img-title-container.post-header {
   height: auto;
   min-height: 12rem;
   /* background: #fff; */
   padding: 9rem 0 3rem 0;
   display: block;
}

.post-header .text-container {
   position: static;
   top: auto;
   left: auto;
   transform: none;
   width: 100%;
   text-align: center;
   padding: 0;
   max-width: none;
   /* color: var(--title); */
   color: #fff;
}

.post-header h1,
.post-header a {
   /* color: var(--title); */
   color: #fff;
}

.post-header small {
   /* color: var(--title);  /* Make date visible */
   color: #fff;
   display: block;
   margin-top: 0.5rem;
}

.post-header a:hover,
.post-header a:active {
   color: var(--teal);
}

@media (max-width: 991px) {
   .img-title-container.post-header {
      padding: 9rem 0 0 0;  /* Less top padding on mobile */
   }
}

.post-content {
   margin: 0 0 3.6rem 0;
}

.mp-text {
   color: var(--text);
   font-size: 1.05rem;
   line-height: 1.6;
}

.mp-text>strong {
   color: var(--title);
}

.text-muted {
   --bs-text-opacity: 1;
   color: rgba(33, 37, 41, 0.35) !important;
}

.text-container>p {
   text-transform: uppercase;
}

@media (max-width: 991.98px) {
   .text-container>h1 {
      font-size: 3.5rem;
   }
}

@media (max-width: 504px) {
   .text-container>h1 {
      font-size: 3rem;
   }
}

@media (max-width: 350px) {
   .text-container>h1 {
      font-size: 2rem;
   }
}

.ap-list {
   list-style: none;
   padding-left: 0;
   margin: 0;
}

.ap-list li {
   position: relative;
   padding-left: 2rem;
   /* for the arrow */
   margin-bottom: 0.6rem;
   line-height: 1.6;
   color: var(--text);
}

/* Green li */
.ap-list li::before {
   content: "➜";
   position: absolute;
   left: 0;
   top: 0.1rem;
   font-size: 1rem;
   color: var(--teal-dark);
}

.ap-card-image-wrapper {
   overflow: hidden;
   border-radius: var(--radius);
}

.ap-card-image-horizontal-wrapper {
   width: 100%;
   height: 100%;
   overflow: hidden;
   /* margin-bottom: 5%; */
}

.ap-card-image {
   width: 100%;
   height: 100%;
   object-fit: cover;
   object-position: center center;
   /* Horizontal center */
   display: block;
}

/* ====== CALL TO ACTION ====== */

.cta-section {
   padding-top: 4rem;
   padding-bottom: 4rem;
}

.cta-box {
   background: var(--teal);
   padding: 6rem 4rem;
   border-radius: var(--radius);
   box-shadow: 0 10px 30px rgba(0, 0, 0, 0.08);
   color: #fff;
}

.cta-title {
   font-size: 2rem;
   font-weight: 600;
   margin-bottom: 1rem;
}

.cta-text {
   font-size: 1rem;
   line-height: 1.6;
   opacity: 0.95;
   margin-bottom: 2rem;
}

.cta-btn-dark {
   display: inline-block;
   padding: 1rem 1.8rem;
   background: var(--teal-dark);
   color: #fff;
   text-decoration: none;
   font-size: 1rem;
   border-radius: var(--radius);
   font-weight: 600;
   transition: 0.25s ease;
}
.cta-btn-dark:hover {
   background: var(--title);
}
.cta-btn-white {
   display: inline-block;
   padding: 1rem 1.8rem;
   background: #fff;
   color: var(--teal);
   text-decoration: none;
   font-size: 1rem;
   border-radius: var(--radius);
   font-weight: 600;
   transition: 0.25s ease;
}
.cta-btn-white:hover {
   background: var(--teal-dark);
   color: #fff;
}
.to-white:hover {
   background: #fff;
   color: var(--teal-dark);
}

.cta-btn {
   display: inline-block;
   padding: 1rem 1.8rem;
   background: #128e8e;
   color: #fff;
   text-decoration: none;
   font-size: 1rem;
   border-radius: var(--radius);
   font-weight: 600;
   transition: 0.25s ease;
   margin-bottom: 1rem !important;
}

.cta-btn:hover {
   background: #06393a;
   color: #fff;
}

/* Responsivo */
@media (max-width: 576px) {
   .cta-box {
      padding: 2.5rem 1.5rem;
   }

   .cta-title {
      font-size: 1.6rem;
   }

   .cta-text {
      font-size: 0.95rem;
   }
}

/* ===========================
   CONTACT PAGE
=========================== */

@media (min-width: 1200px) {
   .container-fluid.top-container {
      margin: 0 24px;
   }
}
.contact-page .panel {
   display: flow-root;
   position: relative;
   box-sizing: border-box;
}
.contact-page .bg-form {
   background-color: rgba(245, 238, 233, 1) !important;
}
.contact-page .row {
   display: flex;
   flex-wrap: wrap;
}
@media (min-width: 459px) {
   .contact-page .sm\:p-6 {
      padding: 3rem !important;
   }
}
@media (min-width: 992px) {
   .contact-page .lg\:p-6 {
      padding: 3rem !important;
   }
}
@media (min-width: 992px) {
   .contact-page .lg\:child-cols-6>* {
      --grid-total: 12;
      --grid-count: 6;
      flex: 0 0 auto;
      width: 50%;
   }
}
@media (min-width: 1200px) {
   .contact-page .xl\:p-8 {
      padding: 3rem !important;
      padding-top: 3rem !important;
      padding-right: 3rem !important;
      padding-bottom: 3rem !important;
      padding-left: 3rem !important;
   }
}
@media (min-width: 1200px) {
   .contact-page .xl\:p-9 {
      padding: 6rem !important;
   }
}
.contact-page h5 {
   margin-bottom: 10px;
}
.contact-page .media-cover {
   width: 100%;
   height: 100%;
   box-sizing: border-box;
   object-fit: cover;
   position: absolute;
   top: 0;
   right: 0;
   bottom: 0;
   left: 0;
}
.contact-page .gap-2 {
   gap: 1rem !important;
}
.contact-page .review-card {
   min-height: 230px;
}
.contact-page .review-card i {
   font-size: 32px;
   color: var(--teal);
}


/* ===========================
   TABLES
=========================== */

.table-main-title {
   background: #0a4748 !important;
   color: #f8f8f8 !important;
}

.table-secundary-title {
   background: #128e8e !important;
   color: #f8f8f8 !important;
}

.table-content td {
   background: #bdbec0 !important;
   /* color: #f8f8f8 !important; */
}

.ap-table-wrapper {
   border-radius: var(--radius);
   /* overflow: hidden; */
}

.check-table {
   position: relative;
}

/* o check */
.check-table::before {
   content: "";
   position: absolute;
   top: 50%;
   left: 50%;
   width: 15px;
   /* largura do ícone */
   height: 8px;
   /* altura do ícone */
   transform: translate(-50%, -50%) rotate(-45deg);
   border-left: 4px solid var(--teal);
   /* cor da imagem */
   border-bottom: 4px solid var(--teal);
   /* cor da imagem */
}

tbody,
td,
tfoot,
th,
thead,
tr {
   border-width: 7px;
}

.table {
   margin-bottom: 0rem !important;
}

/* ===========================
   FOOTER
=========================== */

.footer-emaps {
   background: #f8f8f8;
   padding: 40px 0;
   border-top: 1px solid #eee;
   font-family: "Inter", sans-serif;
}

.footer-row {
   gap: 20px;
}
.footer-row:not(.footer-legal) {  /* First row only */
   border-bottom: 1px solid #dedede;
   padding-bottom: 40px;
   margin-bottom: 40px;
}

.footer-left p,
.footer-right p {
   margin: 0;
   color: #555;
   font-size: 0.95rem;
}

.footer-links {
   margin-top: 8px;
}

.footer-links a {
   color: #444;
   text-decoration: none;
   font-size: 0.9rem;
   margin-right: 20px;
}

.footer-links a:hover {
   text-decoration: underline;
}

/* SOCIAL ICONS */
.footer-social a {
   color: #444;
   font-size: 1.2rem;
   margin-left: 10px;
   transition: 0.2s;
}

.footer-social a:hover {
   color: #000;
}

.footer-by {
   color: #666;
   font-size: 0.85rem;
}

.footer-by a,
.footer-by a:hover {
   color: #666;
   text-decoration: none;
}

.footer-by img {
   margin-top: 2px;
   width: 52px;
}

.footer-legal {
   margin-top: 30px;
   font-size: 0.85rem !important;
}
.footer-legal a {
   color: #555;
}
.footer-legal a:hover {
   color:var(--teal);
}
.footer-legal img {
   height: 36px;
   margin-left: 10px;
}


/* Responsivo */
@media (max-width: 768px) {
   .footer-row {
      flex-direction: column;
      text-align: center;
   }

   .footer-right {
      text-align: center !important;
   }

   .footer-social a {
      margin-left: 6px;
      margin-right: 6px;
   }
}

.solution-heading {
   color: var(--teal);
   font-weight: 500;
}
.solution-heading a:hover{
   color: var(--teal-dark);
}

/* J */
.owl-carousel .owl-item img {
   width: 6rem !important;
   height: 6rem !important;
}

.owl-carousel .item {
   display: flex;
   flex-direction: column;
   align-items: center;
   /* horizontal */
   justify-content: center;
   /* vertical    */
   text-align: center;
   height: 100%;
   /* garante que o item tenha altura completa */
   padding: 20px 10px;
}

.feature-icon {
   display: block;
   margin: 0 auto 15px;
}

/* ----- SETAS DO OWL ----- */
.owl-nav {
   position: absolute;
   top: 50%;
   width: 100%;
   transform: translateY(-50%);
   display: flex;
   justify-content: space-between;
   pointer-events: none;
   /* deixa clique apenas no botão real */
}

.owl-nav button {
   background: none !important;
   border: none !important;
   padding: 0 !important;
   pointer-events: auto;
   /* reativa clique */
}

/* Setas personalizadas */
.owl-prev-custom,
.owl-next-custom {
   font-size: 2.8rem;
   /* TAMANHO igual ao print */
   font-weight: 300;
   color: #d0d0d0;
   /* CINZA CLARO igual ao print */
   cursor: pointer;
   transition: 0.2s ease;
   padding: 0 10px;
   line-height: 1;
}

.owl-prev-custom:hover,
.owl-next-custom:hover {
   color: var(--teal);
}

/* Ajusta posição exatamente como o print (fora do conteúdo) */
.owl-nav .owl-prev {
   position: absolute;
   left: -40px;
   /* empurra seta para fora */
}

.owl-nav .owl-next {
   position: absolute;
   right: -40px;
   /* empurra seta para fora */
}

/* No mobile, mantém tudo centrado */
@media (max-width: 576px) {
   .owl-nav .owl-prev {
      left: -10px;
   }

   .owl-nav .owl-next {
      right: -10px;
   }
}


.home-banner-wrapper {
   position: relative;
   width: 100%;
   border-radius: var(--radius);
   overflow: hidden;
}

.home-banner-img {
   width: 100%;
   height: auto;
   display: block;
   object-fit: cover;
}

/* texto em cima da imagem (lado esquerdo) */
.home-banner-text {
   position: absolute;
   top: 50%;
   left: 7%;
   transform: translateY(-50%);
   color: #fff;
   max-width: 40%;
}

.home-banner-text h1 {
   color: #fff;
   margin: 0;
   font-weight: 700;
   line-height: 1.1;
   font-size: clamp(2.4rem, 4vw, 3.8rem);
}

.home-banner-text .ap-title {
   color: #fff;
   margin: 0;
   font-weight: 700;
   line-height: 1.1;
   font-size: clamp(2.4rem, 4vw, 3.8rem);
}


/* responsivo */
@media (max-width: 768px) {
   .home-banner-text {
      top: 50%;
      left: 40%;
      transform: translate(-50%, -50%);
      max-width: 80%;
      text-align: center;
   }

   .home-banner-text .ap-title {
      font-size: clamp(2rem, 7vw, 5rem);
      text-align: left !important;
   }
}

/* ===== FAQ BOX ===== */
.faq-box {
   border: none;
   border-radius: var(--radius);
   margin-bottom: 1.3rem;
   box-shadow: 0 15px 35px rgba(0, 0, 0, 0.07);
}

/* Header */
.faq-box .accordion-button {
   background: #fff;
   color: var(--title);
   font-size: 1.05rem;
   padding: 1.6rem 2rem;
   border-radius: var(--radius);
}

.faq-box .accordion-button:hover {
   font-weight: 500;
}

/* When OPEN */
.faq-box .accordion-button:not(.collapsed) {
   color: var(--teal);
   font-weight: 500;
   background: #fff;
   box-shadow: none;
}

/* Remover focus azul */
.faq-box .accordion-button:focus {
   box-shadow: none;
}

/* Corpo */
.faq-box .accordion-body {
   padding: 0 2rem 1.6rem;
   font-size: 0.95rem;
   line-height: 1.7;
   color: var(--text);
}

/* Ícone seta (Bootstrap default → estilizamos) */
.faq-box .accordion-button::after {
   background-size: 0.9rem;
   filter: grayscale(100%) opacity(0.7);
   transform: rotate(0deg);
   transition: 0.25s ease;
}

.faq-box .accordion-button:not(.collapsed)::after {
   transform: rotate(180deg);
   filter: hue-rotate(135deg) saturate(180%);
}

/* Mobile */
@media (max-width: 575px) {
   .faq-box .accordion-button {
      padding: 1.3rem 1.4rem;
   }

   .faq-box .accordion-body {
      padding: 0 1.4rem 1.4rem;
   }
}


/* CARD DOS REVIEWS (IDÊNTICO AO PRINT) */
.review-card {
   background: #fff;
   border-radius: var(--radius);
   box-shadow: 0 18px 40px rgba(0, 0, 0, 0.06);
   min-height: 260px;
}

/* BLOG CARD */
.blog-card p {
   font-size: 1rem;
   font-weight: 600;
   margin-top: .5rem;
   text-align: center;
}

.blog-card p a {
   color: var(--title);
}

.blog-card p a:hover {
   color: var(--teal);
}

.ap-card-image-horizontal-wrapper {
   border-radius: var(--radius);
   overflow: hidden;
}

@media (min-width: 992px) {
   .widgets {
      padding-left: 3rem;
   }

}
@media (max-width: 991px) {
   .widgets {
      margin-top: 3rem;
   }

}
.widget-title {
   margin-bottom: -5px;
}
.tags a {
   display: inline-block;
   margin: 0 2px 8px 0;
   padding: 6px 12px;
   font-size: 0.90rem;
   border: 1px solid #ddd;
   color: var(--title);
   border-radius: var(--radius);
   -webkit-transition: all 0.27s cubic-bezier(0.000, 0.000, 0.580, 1.000);
   transition: all 0.27s cubic-bezier(0.000, 0.000, 0.580, 1.000);
}
.tags a:hover {
   background: var(--teal);
   color: #fff;
}

/* ===========================
   STEPS DO CARROSSEL (1–2–3)
=========================== */

/* 1, 2, 3 */
.solucoes-steps .step-circle {
   width: 52px;
   height: 52px;
   border-radius: 999px;
   border: none;
   outline: none;
   background: #eef4f4;
   color: var(--text);
   font-weight: 600;
   font-size: 1.1rem;
   display: inline-flex;
   align-items: center;
   justify-content: center;
   margin: 0;
   cursor: pointer;
   transition: background 0.25s ease, color 0.25s ease, box-shadow 0.25s ease;
}

.solucoes-steps .step-circle.active {
   background: var(--teal);
   color: #fff;
   box-shadow: 0 8px 20px rgba(0, 0, 0, 0.12);
}

/* Linha entre os steps */
.solucoes-steps .step-line {
   position: relative;
   width: 60px;
   height: 2px;
   background: #e5e7eb;
   margin: 0 12px;
   overflow: hidden;
}

/* Estado base: sem preenchimento */
.solucoes-steps .step-line::before {
   content: "";
   position: absolute;
   top: 0;
   left: 0;
   height: 100%;
   width: 0;
   background: var(--teal);
   transition: width 6s linear;
   /* TEM que bater com o JS (6000ms) */
}

/* Quando mudamos manualmente de step, queremos tudo instantâneo */
.solucoes-steps.no-animate .step-line::before {
   transition: none !important;
}

/* Linha a animar (vai enchendo) */
.solucoes-steps .step-line.animating::before {
   width: 100%;
}

/* Linha já concluída (fica cheia e verde) */
.solucoes-steps .step-line.filled::before {
   width: 100%;
}

@media (max-width: 576px) {
   .solucoes-steps .step-circle {
      width: 44px;
      height: 44px;
      font-size: 1rem;
   }

   .solucoes-steps .step-line {
      width: 40px;
      margin: 0 8px;
   }
}



/* =========================================================
   AJUSTES MOBILE ADICIONAIS
========================================================= */

/* Hero + overlay + bottom bar no mobile */
@media (max-width: 768px) {  
   .slide-overlay .ap-title {
      font-size: 2rem;
      line-height: 1.25;
      margin-bottom: 1rem;
   }
}

/* Margens das sections no mobile (inclui override do inline margin-top) */
@media (max-width: 768px) {
   .content {
      margin: 3rem 0;
   }
   .content[style] {
      margin-top: 4rem !important;
   }
}

/* Imagens dos cards (altura/width mais fluídos no mobile) */
@media (max-width: 768px) {
   .ap-card-image-wrapper {
      width: 100%;
      height: auto;
      margin-left: 0;
      margin-bottom: 1.5rem;
   }
   .ap-card-image-horizontal-wrapper {
      width: 100%;
      height: auto;
      margin: 0 0 1.5rem 0;
      border-radius: var(--radius);
   }
   .ap-card-image {
      width: 100%;
      height: auto;
      object-fit: cover;
   }
}

/* Fluxo texto + imagem em várias sections */
@media (max-width: 768px) {
   .row .col-lg-6,
   .row .col-md-5 {
      margin-bottom: 1.8rem;
   }

   .solution-heading,
   .ap-title,
   .mp-text,
   .features-section h1,
   .features-section .ap-title,
   .features-section p {
      /* text-align: center; */
   }

   .cta-btn {
      display: block;
      width: fit-content;
      margin: 0 auto;
   }
}

@media (max-width: 768px) {
   #solucoesCarousel {
      text-align: center;
   }
   #solucoesCarousel h3 {
      margin-top: -10px;
   }
   #solucoesCarousel .carousel-inner {
      overflow: unset;
   }
}

/* Blog / reviews em mobile */
@media (max-width: 768px) {
   .blog-card,
   .review-card {
      /* text-align: left; */
   }
   .review-card {
      min-height: auto;
   }
}

.video-thumb {
   position: relative;
   display: inline-block;
   width: 100%;
   border-radius: var(--radius);
   overflow: hidden;
}

/* Ícone de play */
.play-icon {
   position: absolute;
   top: 52%;
   left: 50%;
   transform: translate(-50%, -50%);
   width: 115px;
   height: 115px;
   border-radius: 50%;
   background: rgba(255, 255, 255, 1);
   backdrop-filter: blur(3px);
   display: flex;
   align-items: center;
   justify-content: center;
   padding-left: 5px;
   font-size: 45px;
   color: var(--teal);
   cursor: pointer;
   transition: 0.25s ease;
}

/* efeito hover opcional */
.video-thumb:hover .play-icon {
   background: rgba(255, 255, 255, 1);
   transform: translate(-50%, -50%) scale(1.08);
}

/* @media (min-width: 1400px) {
  .slide-overlay-right {
    position: absolute;
    top: 67%;
    left: 61%;
    transform: translateY(-50%);
    z-index: 2;
    color: #ffffff;
    max-width: 25%;
  }
} */

/* @media (max-width: 1600px) {
   .slide-overlay-right {
      position: absolute;
      top: 61%;
      top: 36rem;
      left: 58%;
      left: 60rem;
      transform: translateY(-50%);
      z-index: 2;
      color: #fff;
      max-width: 60%;
      max-width: 60%;
   }
} */

.article-section p {
   font-size: 0.95rem;
   line-height: 1.6;
}

.article-figure img {
   border-radius: var(--radius);
   display: block;
}

.article-figure figcaption {
   font-size: 0.78rem;
   color: rgba(33, 37, 41, 0.6);
}

.article-quote {
   background: #e7f5f5;
   border-radius: var(--radius);
   padding: 1.4rem 1.8rem 1.4rem 2.8rem;
   position: relative;
}

.article-quote::before {
   content: "";
   position: absolute;
   width: 28px;
   height: 28px;
   top: 10px;
   left: 18px;
   background-image: url('../img/aspas.png');
   background-size: contain;
   background-repeat: no-repeat;
   opacity: 0.35;
}

.article-quote p {
   margin: 0;
   font-size: 0.95rem;
   line-height: 1.6;
}

.article-card {
   border-radius: var(--radius);
   border: 1px solid #e5e7eb;
   background: #f8fbfb;
}

.article-card-icon {
   width: 44px;
   height: 44px;
   border-radius: 999px;
   border: 1px solid #d1e5e5;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 1.4rem;
   color: var(--teal);
   margin: 0 auto;
}

.article-cta-big {
   background: var(--teal);
}

.article-cta-big p {
   color: #e6f8f8;
}

.article-footer-nav {
   text-transform: uppercase;
   font-weight: 500;
}

.form-control {
   font-size: 0.94rem;
}
.form-control:focus {
  border-color: rgba(0, 143, 143, 0.5);
  box-shadow: 0 0 0 0.25rem rgba(0, 143, 143, 0.15);
}

.form-check-input:checked {
  background-color: var(--teal);
  border-color: var(--teal);
}
.form-check-input:checked:focus {
  box-shadow: 0 0 0 0.25rem rgba(0, 143, 143, 0.15);
}

/* SUBSCREVER */ 

.pricing-compare {
   background: #ffffff;
}

.pricing-compare .wrap {
   max-width: 938px;
   margin: 0 auto;
}

.plan-grid {
   display: flex;
   justify-content: center;
   gap: 5rem;
   margin-bottom: 1rem;
}

.plan-card {
   position: relative;
   width: 305px;
   background: #fff;
   border-radius: 18px;
   border: 2px solid #d6eeee;
   box-shadow: 0 16px 28px rgba(0,0,0,0.08);
   padding: 14px 16px 14px;
   text-align: center;
   cursor: pointer;
}

.plan-topline {
   font-size: 11px;
   color: rgba(33,37,41,0.55);
   font-weight: 600;
   margin-bottom: 6px;
}

.plan-title {
   font-weight: 700;
   letter-spacing: 0.03em;
   text-transform: uppercase;
   color: #212121;
   line-height: 1.05;
   margin: 0 0 10px;
   font-size: 18px;
}

.compare-table thead th:first-child {
   border-top-left-radius: 12px;
}

.compare-table thead th:last-child {
   border-top-right-radius: 12px;
}

.price-pill {
   display: inline-block;
   padding: 1rem 2rem;
   border-radius: 999px;
   background: var(--teal);
   color: #fff;
   font-weight: 700;
   font-size: 2rem;
   box-shadow: 0 10px 18px rgba(0,0,0,0.12);
   margin-bottom: 10px;
   white-space: nowrap;
}

.plan-total {
   font-size: 1.25rem;
}

.plan-note {
   font-size: 14px;
   color: rgba(33,37,41,0.60);
   font-weight: 600;
   margin: 0;
}

/* Badge circular no cartão anual */
.plan-badge {
   position: absolute;
   top: -20px;
   right: -35px;
   width: 70px;
   height: 70px;
   border-radius: 999px;
   background: var(--teal);
   color: #ffffff;
   display: flex;
   align-items: center;
   justify-content: center;
   text-align: center;
   font-weight: 800;
   font-size: 13px;
   line-height: 1.05;
   letter-spacing: 0.03em;
   box-shadow: 0 14px 22px rgba(0,0,0,0.18);
   padding: 8px;
   text-transform: uppercase;
   transform: rotate(-24deg);
}

/* Tabela */
.table-shell {
   border-radius: 12px;
   overflow: hidden;
   box-shadow: 0 10px 24px rgba(0,0,0,0.06);
   border: 1px solid #e7eeee;
}

.compare-table {
   width: 100%;
}

.compare-table thead th {
   background: var(--teal);
   color: #ffffff;
   font-weight: 700;
   text-transform: none;
   font-size: 15px;
   padding: 12px 15px;
   border-color: #ffffff !important;
}

.compare-table thead th:first-child {
   width: 58%;
}

.compare-table tbody td {
   background: #ececec !important;
   font-size: 16px;
   color: var(--text);
   padding: 16px 20px;
   border-color: #ffffff !important; 
   vertical-align: middle;
}

.compare-table tbody td:first-child {
   color: var(--title);
}

/* Linhas dos 3 preços*/
.row-price td:nth-child(2),
.row-price td:nth-child(3) {
   color: var(--title);
   text-align: center;
   white-space: nowrap;
}

/* Colunas de check centradas */
.compare-table tbody td:nth-child(2),
.compare-table tbody td:nth-child(3) {
   text-align: center;
}

/* CTA inferior */
.cta-bottom {
   display: flex;
   justify-content: center;
}

.cta-pill {
   display: inline-block;
   background: var(--teal);
   color: #ffffff;
   font-size: 18px;
   padding: 16px 22px;
   border-radius: 10px;
   box-shadow: 0 16px 28px rgba(0,0,0,0.14);
   text-align: center;
   width: min(520px, 100%);
}

@media (max-width: 700px) {
   .plan-grid { flex-direction: column; align-items: center; }
   .plan-card { width: min(330px, 100%); }
   .compare-table thead th:first-child { width: auto; }
}

.plan-card {
   position: relative;
   width: 360px;
   background: #eaf3f3;
   border-radius: 22px;
   border: 3px solid #eaf3f3;
   box-shadow: 0 16px 28px rgba(0,0,0,0.08);
   padding: 2px 2px 2px;
   text-align: center;
   overflow: visible;
}

.plan-topbar {
   padding: 10px 14px;
   background: #eaf3f3;
   color: var(--text);
   font-weight: 700;
   font-size: 13px;
   border-radius: 22px 22px 0 0;
   letter-spacing: 0.02em;
   font-weight: 800;   
}

.plan-inner {
   background: #ffffff;
   border-radius: 22px; 
   padding: 22px 5px 22px;
   box-shadow: inset 0 0 0 1px rgba(0,0,0,0.02);
}

tbody, td, tfoot, th, thead, tr {
   border-width: 1px !important;
}


.mobile-language-switcher {
   padding: 0.75rem 1rem 0.5rem;
   border-bottom: 1px solid rgba(255, 255, 255, 0.12);
   margin-bottom: 0.5rem;
   text-align: left;
}

.mobile-language-title {
   display: flex;
   align-items: center;
   color: #fff;
   font-size: 1rem;
   font-weight: 600;
   margin-bottom: 0.35rem;
}

.mobile-language-links {
   display: flex;
   flex-direction: column;
   gap: 0.1rem;
}

.mobile-language-links .nav-link {
   color: #fff !important;
   padding: 0.45rem 0;
   font-size: 1rem;
}

@media (max-width: 425px) {
  .plan-badge {
    top: -55px;
    right: 5px;
  }
}

.search-input {
   border: none;
   background: transparent;
   border-bottom: 1px solid rgba(255,255,255,0.4);
   color: #fff;
   outline: none;
   width: 140px;
   transition: 0.3s;
   font-size: 0.9rem;
}

.search-input::placeholder {
   color: rgba(255,255,255,0.6);
}

.search-input:focus {
   border-bottom: 1px solid #fff;
   width: 180px;
}

.search-form {
   display: flex;
   align-items: center;
   justify-content: flex-end;
   position: relative;
}

.search-input {
   width: 0;
   opacity: 0;
   padding: 0;
   border: none;
   border-bottom: 1px solid transparent;
   background: transparent;
   color: #fff;
   outline: none;
   pointer-events: none;
   transition: width 0.3s ease, opacity 0.2s ease, padding 0.3s ease, margin-right 0.3s ease, border-color 0.3s ease;
   margin-right: 0;
   font-size: 0.95rem;
}

.search-input::placeholder {
   color: rgba(255, 255, 255, 0.65);
}

.search-form.active .search-input {
   width: 180px;
   opacity: 1;
   padding: 0.35rem 0;
   margin-right: 0.5rem;
   border-bottom-color: rgba(255, 255, 255, 0.5);
   pointer-events: auto;
}

.search-form.active .search-input:focus {
   border-bottom-color: #fff;
}

.navbar-post .search-input {
   color: var(--title);
}

.navbar-post .search-input::placeholder {
   color: rgba(33, 33, 33, 0.5);
}

.navbar-post .search-form.active .search-input {
   border-bottom-color: rgba(33, 33, 33, 0.35);
}

.navbar-post .search-form.active .search-input:focus {
   border-bottom-color: var(--teal);
}

.search-form {
   min-width: 44px;
}

.search-toggle {
   flex-shrink: 0;
}

.mobile-search-item {
   padding-top: 0.35rem;
   padding-bottom: 0.35rem;
}

.mobile-search-form {
   padding: 0 0.75rem;
}

.mobile-search-label {
   display: flex;
   align-items: center;
   color: #fff;
   font-size: 1rem;
   margin-bottom: 0.65rem;
}

.mobile-search-wrap {
   display: flex;
   align-items: center;
   gap: 0.5rem;
}

.mobile-search-input::placeholder {
   color: rgba(255, 255, 255, 0.7);
}

.mobile-search-input:focus {
   background: rgba(255, 255, 255, 0.12);
   color: #fff;
   border-color: rgba(255, 255, 255, 0.35);
   box-shadow: none;
}

.mobile-search-btn {
   padding: 0.65rem 1rem;
   flex-shrink: 0;
}

.mobile-search-form {
   max-height: 0;
   overflow: hidden;
   opacity: 0;
   transition: all 0.3s ease;
   padding: 0 0.75rem;
}

/* ABERTO */
.mobile-search-item.active .mobile-search-form {
   max-height: 100px;
   opacity: 1;
   margin-top: 0.5rem;
}

.mobile-search-wrap {
   display: flex;
   gap: 0.5rem;
}

.mobile-search-input {
   background: rgba(255,255,255,0.08);
   border: 1px solid rgba(255,255,255,0.2);
   color: #fff;
}

@media (max-width: 768px) {
  .home-banner-wrapper {
      aspect-ratio: 1 / 1;
      width: 95%;
      margin: 0 auto; 
  }

  .home-banner-img {
    height: 100%;
    object-fit: cover;
  }
}
/* OFFCANVAS LAYOUT */
.emaps-offcanvas-body {
   height: 100%;
   padding: 0 !important;
}

.emaps-offcanvas-layout {
   display: flex;
   height: 100%;
   min-height: 100%;
}

.emaps-offcanvas-image {
   width: 34%;
   min-width: 108px;
   height: 100%;
   overflow: hidden;
   flex-shrink: 0;
}

.emaps-offcanvas-image img {
   width: 100%;
   height: 100%;
   object-fit: cover;
   display: block;
}

.emaps-offcanvas-menu {
   flex: 1;
   display: flex;
   flex-direction: column;
   height: 100%;
   padding: 2.2rem 2rem 2rem 2rem;
   background: var(--teal);
   color: #fff;
   overflow-y: auto;
}

/* Idiomas */
.emaps-offcanvas-lang {
   display: flex;
   flex-direction: column;
   gap: 1rem;
   margin-top: 0.75rem;
   margin-bottom: 1.5rem;
}

.emaps-offcanvas-lang a,
.emaps-current-lang {
   color: #fff;
   text-decoration: none;
   font-size: 1rem;
   line-height: 1.2;
}

.emaps-current-lang {
   display: inline-flex;
   align-items: center;
   gap: 0.55rem;
   font-weight: 600;
}

.emaps-current-lang i {
   font-size: 0.95rem;
}

/* Linha */
.emaps-offcanvas-separator {
   border: 0;
   border-top: 1px solid rgba(255,255,255,0.2);
   margin: 0 0 1.8rem 0;
}

/* Pesquisa + links com ícone */
.emaps-offcanvas-search-block,
.emaps-offcanvas-toplinks {
   margin-bottom: 1.7rem;
}

.emaps-offcanvas-icon-link {
   display: inline-flex;
   align-items: center;
   gap: 0.85rem;
   color: #fff;
   text-decoration: none;
   text-transform: uppercase;
   font-size: 0.95rem;
   font-weight: 600;
   letter-spacing: 0.02em;
}

.emaps-offcanvas-icon-link i {
   width: 1rem;
   font-size: 1.1rem;
}

/* Form de pesquisa escondido/aberto */
.emaps-offcanvas-search-form {
   max-height: 0;
   overflow: hidden;
   opacity: 0;
   transition: all 0.3s ease;
   margin-top: 0;
}

.emaps-offcanvas-search-block.active .emaps-offcanvas-search-form {
   max-height: 100px;
   opacity: 1;
   margin-top: 0.85rem;
}

/* Menu principal */
.emaps-offcanvas-nav {
   gap: 1.55rem;
   margin: 0;
   padding: 0;
}

.emaps-offcanvas-nav .nav-link {
   padding: 0;
   color: #fff !important;
   font-size: 1rem;
   font-weight: 500;
   text-transform: uppercase;
   letter-spacing: 0.01em;
}

.emaps-offcanvas-nav .nav-link.nav-emaps {
   text-transform: none;
}

.emaps-offcanvas-nav .nav-link.active {
   font-weight: 700;
}

/* Hover */
.emaps-offcanvas-lang a:hover,
.emaps-offcanvas-icon-link:hover,
.emaps-offcanvas-nav .nav-link:hover {
   color: #fff !important;
   opacity: 0.85;
}

/* Mantém o visual dos campos mobile */
.emaps-offcanvas-search-form .mobile-search-wrap {
   display: flex;
   gap: 0.5rem;
}

.emaps-offcanvas-search-form .mobile-search-input {
   background: rgba(255,255,255,0.08);
   border: 1px solid rgba(255,255,255,0.2);
   color: #fff;
}

.emaps-offcanvas-search-form .mobile-search-input::placeholder {
   color: rgba(255,255,255,0.7);
}

.emaps-offcanvas-search-form .mobile-search-input:focus {
   background: rgba(255,255,255,0.12);
   color: #fff;
   border-color: rgba(255,255,255,0.35);
   box-shadow: none;
}

.emaps-offcanvas-search-form .mobile-search-btn {
   padding: 0.65rem 1rem;
   flex-shrink: 0;
}

/* Ajuste fino */
@media (max-width: 480px) {
   .emaps-offcanvas-image {
      width: 31%;
      min-width: 88px;
   }

   .emaps-offcanvas-menu {
      padding: 2rem 1.4rem 1.8rem 1.4rem;
   }

   .emaps-offcanvas-lang {
      gap: 0.9rem;
   }

   .emaps-offcanvas-nav {
      gap: 1.35rem;
   }
}

.emaps-offcanvas-search-form {
   max-height: 0;
   overflow: hidden;
   opacity: 0;
   transition: all 0.3s ease;
}

.emaps-offcanvas-search-block.active .emaps-offcanvas-search-form {
   max-height: 100px;
   opacity: 1;
   margin-top: 0.8rem;
}

/* DESKTOP por defeito */
.offcanvas-desktop-layout {
   display: block;
}

.offcanvas-mobile-layout {
   display: none;
}

/* MOBILE até 991px */
@media (max-width: 991px) {
   .offcanvas-desktop-layout {
      display: none;
   }

   .offcanvas-mobile-layout {
      display: block;
      height: 100%;
   }
}

/* DESKTOP por defeito */
.offcanvas-desktop-layout {
   display: block;
}

.offcanvas-mobile-layout {
   display: none;
}

/* MOBILE até 991px */
@media (max-width: 991px) {
   .offcanvas-desktop-layout {
      display: none;
   }

   .offcanvas-mobile-layout {
      display: block;
      height: 100%;
   }
}

/* MOBILE NOVO LAYOUT */
@media (max-width: 991px) {
   .offcanvas-mobile-layout,
   .offcanvas-mobile-layout .emaps-offcanvas-layout {
      height: 100%;
      min-height: 100%;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-layout {
      display: flex;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-image {
      width: 50%;
      min-width: 92px;
      height: 100%;
      overflow: hidden;
      flex-shrink: 0;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-image img {
      width: 80%;
      height: 80%;
      object-fit: cover;
      display: block;
      margin-left: 15%;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-menu {
      flex: 1;
      display: flex;
      flex-direction: column;
      height: 100%;
      padding: 2rem 1.4rem 1.8rem 1.4rem;
      background: var(--teal);
      color: #fff;
      overflow-y: auto;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-lang {
      display: flex;
      flex-direction: column;
      gap: 0.9rem;
      margin-top: 0.5rem;
      margin-bottom: 1.4rem;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-lang a,
   .offcanvas-mobile-layout .emaps-current-lang {
      color: #fff;
      text-decoration: none;
      font-size: 1rem;
      line-height: 1.2;
   }

   .offcanvas-mobile-layout .emaps-current-lang {
      display: inline-flex;
      align-items: center;
      gap: 0.55rem;
      font-weight: 600;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-separator {
      border: 0;
      border-top: 1px solid rgba(255,255,255,0.2);
      margin: 0 0 1.4rem 0;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-search-block,
   .offcanvas-mobile-layout .emaps-offcanvas-toplinks {
      margin-bottom: 1.7rem;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-icon-link {
      display: inline-flex;
      align-items: center;
      gap: 0.85rem;
      color: #fff;
      text-decoration: none;
      text-transform: uppercase;
      font-size: 0.95rem;
      font-weight: 600;
      letter-spacing: 0.02em;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-icon-link i {
      width: 1rem;
      font-size: 1.1rem;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-search-form {
      max-height: 0;
      overflow: hidden;
      opacity: 0;
      transition: all 0.3s ease;
      margin-top: 0;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-search-block.active .emaps-offcanvas-search-form {
      max-height: 100px;
      opacity: 1;
      margin-top: 0.85rem;
   }

   .offcanvas-mobile-layout .mobile-search-wrap {
      display: flex;
      gap: 0.5rem;
   }

   .offcanvas-mobile-layout .mobile-search-input {
      background: rgba(255,255,255,0.08);
      border: 1px solid rgba(255,255,255,0.2);
      color: #fff;
   }

   .offcanvas-mobile-layout .mobile-search-input::placeholder {
      color: rgba(255,255,255,0.7);
   }

   .offcanvas-mobile-layout .mobile-search-input:focus {
      background: rgba(255,255,255,0.12);
      color: #fff;
      border-color: rgba(255,255,255,0.35);
      box-shadow: none;
   }

   .offcanvas-mobile-layout .mobile-search-btn {
      padding: 0.65rem 1rem;
      flex-shrink: 0;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-nav {
      gap: 1.35rem;
      margin: 0;
      padding: 0;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-nav .nav-link {
      padding: 0;
      color: #fff !important;
      font-size: 1rem;
      font-weight: 500;
      text-transform: uppercase;
      letter-spacing: 0.01em;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-nav .nav-link.nav-emaps {
      text-transform: none;
   }

   .offcanvas-mobile-layout .emaps-offcanvas-nav .nav-link.active {
      font-weight: 700;
   }
}

.plan-card:hover {
  transform: translateY(-2px);
  box-shadow: var( 0 16px 28px rgba(0, 0, 0, 0.08));
}

.container{
   margin-top: 2%;
}

.mobile-search-wrap {
   display: flex;
   align-items: center;
   gap: 0.5rem;
}

.mobile-search-close {
   font-size: 1.2rem;
   padding: 0.4rem;
}

.mobile-search-modal-content {
   border-radius: 20px;
   border: 0;
}

.mobile-search-modal-wrap {
   display: flex;
   align-items: center;
   gap: 0.5rem;
}

.mobile-search-modal-wrap .form-control {
   flex: 1;
}

.mobile-search-modal-wrap .btn {
   flex-shrink: 0;
   padding: 0.65rem 1rem;
}

.grecaptcha-badge { 
   visibility: hidden;
}

@media (min-width: 992px) {
   .navbar-custom .nav-item.dropdown {
      position: relative;
   }

   .navbar .dropdown:hover .dropdown-menu {
      display: block;
   }

   .navbar-custom .dropdown-menu {
      display: none;
      position: absolute;
      top: 100%;
      right: 0;
      background: #fff;
      box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
      border-radius: 10px;
      min-width: 240px;
      overflow: hidden;
      padding: 0;
      margin: 0;
      border: 0;
   }

   .navbar-custom .dropdown-menu::before {
      content: '';
      position: absolute;
      top: -0.25rem;
      left: 0;
      right: 0;
      height: 0.25rem;
   }

   .navbar-custom .dropdown-menu .dropdown-item {
      display: block;
      padding: 0.75rem 1rem;
      color: var(--text);
      text-decoration: none;
      transition: all 0.2s;
      border-bottom: 1px solid #f0f0f0;
      text-transform: uppercase;
   }

   .navbar-custom .dropdown-menu li:last-child .dropdown-item {
      border-bottom: none;
   }

   .navbar-custom .dropdown-menu .dropdown-item:hover,
   .navbar-custom .dropdown-menu .dropdown-item:focus {
      background: var(--teal);
      color: #fff;
   }

   .navbar-custom .nav-item.dropdown:hover > .dropdown-menu,
   .navbar-custom .nav-item.dropdown:focus-within > .dropdown-menu {
      display: block;
   }

}

@media (max-width: 991.98px) {
   .emaps-offcanvas-nav .dropdown-menu {
      position: static !important;
      float: none;
      background: transparent;
      box-shadow: none;
      border: 0;
      padding: 0.4rem 0 0 1rem;
      margin: 0;
      min-width: auto;
   }

   .emaps-offcanvas-nav .dropdown-menu .dropdown-item {
      color: #fff;
      padding: 0.35rem 0;
      font-size: 0.9rem;
      text-transform: uppercase;
      background: transparent;
      border: 0;
   }

   .emaps-offcanvas-nav .dropdown-menu .dropdown-item:hover,
   .emaps-offcanvas-nav .dropdown-menu .dropdown-item:focus {
      background: transparent;
      color: #fff;
      opacity: 0.85;
   }
}

.navbar-custom {
  background-color: transparent;
  transition: background-color .35s ease, box-shadow .35s ease;
}

.navbar-custom .nav-link,
.navbar-custom .icon-btn,
.navbar-custom .current-lang {
  color: #fff;
  transition: color .35s ease;
}

.navbar-custom.navbar-scrolled {
  background-color: #fff;
  box-shadow: 0 2px 12px rgba(0, 0, 0, .08);
}

.navbar-custom.navbar-scrolled .nav-link,
.navbar-custom.navbar-scrolled .icon-btn,
.navbar-custom.navbar-scrolled .current-lang {
  color: #111;
}

.logo-emaps {
  transition: opacity .25s ease;
}

.navbar-custom .navbar-toggler {
  border-color: rgb(0, 0, 0);
  transition: border-color .35s ease, background-color .35s ease;
}

.navbar-custom .navbar-toggler-icon {
  transition: filter .35s ease;
}

.navbar-custom.navbar-scrolled .navbar-toggler {
  border-color: rgb(0, 0, 0);
}

.navbar-custom.navbar-scrolled .navbar-toggler-icon {
  filter: invert(1) grayscale(1);
}

/*  */
.navbar-custom.navbar-scrolled {
  padding-top: 0.35rem;
  padding-bottom: 0.35rem;
}

.navbar-custom.navbar-scrolled .navbar-brand {
  margin: 6px 0;
}

.navbar-custom.navbar-scrolled .logo-emaps {
  width: 220px;
}

@media (max-width: 991.98px) {
  .navbar-custom.navbar-scrolled {
    padding: 0.45rem 0.8rem;
  }

  .navbar-custom.navbar-scrolled .logo-emaps {
    width: 160px;
  }
} 


/*  */

.emaps-offcanvas-preregisto {
   margin-bottom: 1.4rem;
}

.emaps-offcanvas-preregisto a {
   display: inline-block;
   background: #fff;
   color: var(--teal);
   padding-left: 0.75rem;
   padding-right: 0.75rem;
   padding-top: 0.75rem;
   padding-bottom: 0.75rem;
   border-radius: var(--radius);
   font-size: 0.95rem;
   font-weight: 700;
   text-transform: uppercase;
   letter-spacing: 0.04em;
}

.emaps-offcanvas-preregisto a:hover {
   background: var(--teal-dark);
   color: #fff;
}