/* Open Sans: next/font em _app.js (--font-open-sans em document.documentElement); Gilroy: _document.js (cdnfonts + SRI) */

/* Animações globais (conteúdo de animations.css) */
/* NÃO adicionar will-change em * - quebra position:fixed do NProgress e do banner de cookies */

/* overflow em html pode criar novo bloco de contenção e quebrar position:fixed */
/* overflow-x: clip não cria scroll container; fallback: hidden em browsers antigos */
html {
  scroll-behavior: smooth;
  overflow-x: hidden;
  overflow-y: auto;
  scrollbar-color: var(--color-moondg-dark) rgba(26, 26, 46, 0.3);
  scrollbar-width: thin;
}
@supports (overflow-x: clip) {
  html { overflow-x: clip; }
}

html::-webkit-scrollbar {
  width: 8px;
}

html::-webkit-scrollbar-track {
  background: rgba(26, 26, 46, 0.15);
}

html::-webkit-scrollbar-thumb {
  background: var(--color-moondg-dark);
  border-radius: 4px;
}

html::-webkit-scrollbar-thumb:hover {
  background: var(--color-moondg-dark-mid);
}

/* Garantir NProgress fixo no topo da viewport (evitar conflitos com overflow/containing block) */
#nprogress .bar,
#nprogress .spinner {
  position: fixed !important;
  top: 0 !important;
  left: 0 !important;
  right: 0 !important;
}
#nprogress .spinner {
  top: 15px !important;
  left: auto !important;
  right: 15px !important;
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    scroll-behavior: auto !important;
  }
}

@keyframes fadeInUp {
  from {
    opacity: 0;
    transform: translateY(30px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes fadeInLeft {
  from {
    opacity: 0;
    transform: translateX(-30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes fadeInRight {
  from {
    opacity: 0;
    transform: translateX(30px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}

@keyframes scaleIn {
  from {
    opacity: 0;
    transform: scale(0.8);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes pulse {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
}

.animate-fade-in-up {
  animation: fadeInUp 0.8s ease-out forwards;
}

.animate-fade-in-left {
  animation: fadeInLeft 0.8s ease-out forwards;
}

.animate-fade-in-right {
  animation: fadeInRight 0.8s ease-out forwards;
}

.animate-scale-in {
  animation: scaleIn 0.6s ease-out forwards;
}

.animate-pulse {
  animation: pulse 2s ease-in-out infinite;
}

.delay-100 { animation-delay: 0.1s; }
.delay-200 { animation-delay: 0.2s; }
.delay-300 { animation-delay: 0.3s; }
.delay-400 { animation-delay: 0.4s; }
.delay-500 { animation-delay: 0.5s; }
.delay-600 { animation-delay: 0.6s; }
.delay-700 { animation-delay: 0.7s; }
.delay-800 { animation-delay: 0.8s; }

.hover-lift {
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.hover-lift:hover {
  transform: translateY(-8px);
  box-shadow: 0 12px 24px rgba(0, 0, 0, 0.15);
}

.hover-scale {
  transition: transform 0.3s ease;
}

.hover-scale:hover {
  transform: scale(1.05);
}

.button-animate {
  transition: all 0.3s ease;
  position: relative;
  overflow: hidden;
}

.button-animate::before {
  content: '';
  position: absolute;
  top: 0;
  left: -100%;
  width: 100%;
  height: 100%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.2), transparent);
  transition: left 0.5s;
}

.button-animate:hover::before {
  left: 100%;
}

@media (prefers-reduced-motion: reduce) {
  .animate-fade-in-up,
  .animate-fade-in-left,
  .animate-fade-in-right,
  .animate-scale-in,
  .animate-pulse {
    animation: none;
  }

  .hover-lift:hover,
  .hover-scale:hover {
    transform: none;
  }
}

.intersection-observer {
  opacity: 0;
  transform: translateY(30px);
  transition: opacity 0.8s ease, transform 0.8s ease;
}

.intersection-observer.visible {
  opacity: 1;
  transform: translateY(0);
}

.gpu-accelerated {
  transform: translateZ(0);
  backface-visibility: hidden;
  perspective: 1000px;
}

.card-animate {
  transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

.card-animate:hover {
  transform: translateY(-8px) scale(1.02);
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.1);
}

.icon-animate {
  transition: transform 0.3s ease, color 0.3s ease;
}

.icon-animate:hover {
  transform: scale(1.2) rotate(5deg);
}

.text-animate {
  transition: color 0.3s ease;
}

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

@media (max-width: 768px) {
  .hover-lift:hover {
    transform: translateY(-4px);
  }

  .hover-scale:hover {
    transform: scale(1.02);
  }

  .card-animate:hover {
    transform: translateY(-4px) scale(1.01);
  }
}

/* Botão flutuante de contato */
.floating-contact-button {
    position: fixed !important;
    bottom: 20px !important;
    right: 20px !important;
    z-index: 2147483000 !important;
    pointer-events: auto !important;
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    transform: translate3d(0, 0, 0) !important;
    will-change: transform !important;
}

.floating-contact-button button {
    background: linear-gradient(135deg, var(--color-primary-blue) 0%, var(--color-secondary-blue) 100%) !important;
    color: white !important;
    border: none !important;
    border-radius: 50px !important;
    padding: 12px 20px !important;
    cursor: pointer !important;
    display: flex !important;
    align-items: center !important;
    gap: 8px !important;
    font-size: 16px !important;
    font-weight: 600 !important;
    box-shadow: 0 8px 32px rgba(14, 46, 189, 0.4) !important;
    font-family: var(--font-open-sans), sans-serif !important;
    transition: all 0.3s ease !important;
    white-space: nowrap !important;
    min-width: fit-content !important;
    max-width: none !important;
    position: relative !important;
    z-index: 2147483000 !important;
}

.floating-contact-button button:hover {
    transform: scale(1.05) !important;
}

.floating-contact-button button:active {
    transform: scale(0.95) !important;
}

@media (max-width: 768px) {
    .floating-contact-button {
        bottom: 15px !important;
        right: 15px !important;
    }
    
    .floating-contact-button button {
        padding: 10px 16px !important;
        font-size: 14px !important;
    }
    
    .floating-contact-button button span:first-child {
        font-size: 16px !important;
        margin-right: 6px !important;
    }
}

/* Reset e estilos base */
* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: ui-sans-serif, system-ui, sans-serif;
  line-height: 1.6;
  color: var(--color-primary-blue);
}

/* Estilos para as fontes da Monditech */
h1, h2, h3, h4, h5, h6 {
  font-family: 'Gilroy', sans-serif;
  font-weight: 700;
  color: var(--color-primary-blue);
}

p, span, a, li {
  font-family: var(--font-open-sans), sans-serif;
}

html,
body {
  padding: 0;
  margin: 0;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell,
    'Fira Sans', 'Droid Sans', 'Helvetica Neue', sans-serif;
  background-color: #ffffff;
}

a {
  color: inherit;
  text-decoration: none;
}

* {
  box-sizing: border-box;
}

@media (max-width: 600px) {
  #promo img {
    left: 0px !important;
  }  
  #promo_x {
    right: 10px !important;
  }
}

.Toastify__toast--success {
  background-color: var(--color-accent-cyan)!important;
  color: var(--color-primary-blue);
  font-weight: bold;
}

/* Sempre manter toasts acima de botões flutuantes/modais de baixo impacto */
.Toastify__toast-container {
  z-index: 2147483647 !important;
}

.hidden {
  display: none;
}

.youtube-player-parent iframe{
  margin-left: 50% !important;
  transform: translateX(-50%) !important;
  margin: 2rem 0;
}

@media (max-width: 1215px) {
  .youtube-player-parent iframe {
    width: 100%;
  }  
}

.input-monditech {
	border-bottom: 1px solid var(--color-secondary-blue) !important;
  border-top: none !important;
  border-right: none !important;
  border-left: none !important;
  border-radius: 0 !important;
	padding: 0 5px 0 5px !important;
  box-shadow: none !important;
  margin-top: 5px;
}

textarea.input-monditech {
  resize: vertical !important;
}

.input-monditech::after {
	background: #FFA571 !important;
	transform: matrix(1, 0, 0, -1, 0, 0) !important;
}

.input-monditech:focus {	
	box-shadow: 0 6px 8px -8px rgb(14 46 189 / 80%) !important;
}

.input-monditech:focus:not(:read-only):not(:disabled) {
	border-bottom: 1px solid rgb(14 46 189) !important;
}

.input-monditech:read-only, .input-monditech:disabled {
	background: linear-gradient(to right, #e9edf191, transparent) !important;
}

.input-monditech.search {
	background-image: url("data:image/svg+xml,%3Csvg width='15' height='15' viewBox='0 0 15 15' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath fill-rule='evenodd' clip-rule='evenodd' d='M10.7438 9.67385L14.7786 13.7088C14.9204 13.8507 15.0001 14.0431 15 14.2438C14.9999 14.4444 14.9202 14.6368 14.7782 14.7786C14.6363 14.9204 14.4439 15.0001 14.2433 15C14.0426 14.9999 13.8502 14.9202 13.7084 14.7782L9.67361 10.7433C8.46745 11.6776 6.95069 12.1172 5.4319 11.9728C3.91311 11.8284 2.50637 11.1108 1.49785 9.96605C0.489335 8.82126 -0.0451967 7.33526 0.00299711 5.81034C0.0511909 4.28543 0.67849 2.83614 1.75728 1.75732C2.83607 0.678507 4.28532 0.0511922 5.8102 0.00299718C7.33508 -0.0451978 8.82104 0.489347 9.9658 1.49789C11.1106 2.50643 11.8281 3.91321 11.9725 5.43204C12.1169 6.95087 11.6773 8.46766 10.7431 9.67385H10.7438ZM6.00028 10.4996C7.1937 10.4996 8.33824 10.0255 9.18211 9.18159C10.026 8.3377 10.5001 7.19313 10.5001 5.99968C10.5001 4.80623 10.026 3.66166 9.18211 2.81777C8.33824 1.97387 7.1937 1.49978 6.00028 1.49978C4.80686 1.49978 3.66232 1.97387 2.81845 2.81777C1.97457 3.66166 1.50049 4.80623 1.50049 5.99968C1.50049 7.19313 1.97457 8.3377 2.81845 9.18159C3.66232 10.0255 4.80686 10.4996 6.00028 10.4996Z' fill='%23235d95'/%3E%3C/svg%3E%0A") !important;
	background-repeat: no-repeat, repeat !important;
	background-position: right .7em top 50%, 0 0 !important;
	background-size: 1em auto, 100% !important;
}

.input-monditech.calendar {
	background-image: url("data:image/svg+xml,%3Csvg width='16' height='18' viewBox='0 0 16 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M13.8333 2.49992H13V0.833252H11.3333V2.49992H4.66667V0.833252H3V2.49992H2.16667C1.24167 2.49992 0.508333 3.24992 0.508333 4.16659L0.5 15.8333C0.5 16.7499 1.24167 17.4999 2.16667 17.4999H13.8333C14.75 17.4999 15.5 16.7499 15.5 15.8333V4.16659C15.5 3.24992 14.75 2.49992 13.8333 2.49992ZM13.8333 15.8333H2.16667V6.66658H13.8333V15.8333Z' fill='%23235d95'/%3E%3C/svg%3E ") !important;
	background-repeat: no-repeat, repeat !important;
	background-position: right .7em top 50%, 0 0 !important;
	background-size: 1em auto, 100% !important;
}

.select-monditech {
	border-bottom: 1px solid var(--color-secondary-blue) !important;
    border-top: none !important;
    border-right: none !important;
    border-left: none !important;
    border-bottom-left-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
	padding: 0 5px 0 5px !important;
	appearance: none !important;
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	background-image: url("data:image/svg+xml,%3Csvg width='15' height='8' viewBox='0 0 15 8' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M7.5 8L14.8612 0.5L0.138784 0.5L7.5 8Z' fill='%230E2EBD'/%3E%3C/svg%3E ") !important;
	background-repeat: no-repeat, repeat !important;
	background-position: right .7em top 50%, 0 0 !important;
	background-size: 1em auto, 100% !important;
}

.select-monditech:focus {	
	box-shadow: 0 6px 8px -8px rgb(14 46 189 / 80%) !important;
}

.select-monditech:focus:not(:read-only):not(:disabled) {
	border-bottom: 1px solid rgb(14 46 189) !important;
}

.select-monditech:focus {
	border-bottom: 1px solid rgb(14 46 189) !important;
	box-shadow: none !important;
}

.input-separator {
	border-image: linear-gradient(to top, var(--color-secondary-blue), rgba(0, 0, 0, 0)) 1 100%;
  border-left: 1px solid var(--color-secondary-blue) !important;
}

.title-plans-section {
  font-family: "Gilroy", sans-serif;
  color: var(--color-primary-blue);
  font-weight: 700;
}

.text-light-gray {
  color: #7a7a7a !important;
  font-family: var(--font-open-sans), sans-serif;
  font-size: 15px;
  font-weight: 300;
}

.image-header {
  position: absolute;
  width: 100%;
  height: 100%;
}

.text-color-primary-blue {
  color: var(--color-primary-blue) !important;
}

.font-bold {
  font-weight: bold !important;
}

.font-italic {
  font-style: italic !important;
}

.font-underlined {
  text-decoration: underline !important;
}

.img-original {
  border-radius: 5px;
}

.img-original.no-border-color {
  border-color: transparent;
}

.caption-img {
  color: #8d8d8d;
  font-size: 12px;
  text-align: right;
  display: none;
}

.caption-img-blog {
  padding-top: 10px;
  line-height: 1.5;
  text-align: center;
}

.img-hover {
  display: block !important;
  opacity: 0;
  height: 0;
  overflow: hidden;
  transition: opacity .3s ease-in-out;
}

@media (min-width: 768px) {
  .img-zoom.img-original:hover ~ .img-zoom.img-hover, .img-zoom.img-hover:hover {
    z-index: 999;
    position: absolute;
    bottom: -20%;
    right: -1%;
    width: 80%;
    height: auto;
    opacity: 1;
    box-shadow: 0px 0px 3px 1px #b1b1b1;
    border-radius: 5px;
  }  

  .img-blog-text {
    width: 60%;
    margin: auto;
  }

  .img-blog-text-hover {
    width: 100% !important;
    right: 0 !important;
  }

  .img-blog-vertical {
    width: 30%;
  }

  .img-blog-vertical-2 {
    width: 40%;
  }

  .img-blog-horizontal {
    width: 80%;
    height: 30%;
  }

  .caption-img {
    display: block;
  }  
}

.rotate-upside-down {
  transform: scaleY(-1);
}

.menu-option-dropdown-opened::before {
  content: "";
  position: absolute;
  height: 230%;
  width: 135px;
  top: -10px;
  left: 50%;
  transform: translateX(-50%);
  background-color: #fff;
  border: 1px solid #ededed;
  border-bottom: 0;
  border-top-left-radius: 10px;
  border-top-right-radius: 10px;  
}

.menu-option-dropdown-opened span {
  transform: translateX(0);
  -moz-transform: translate(0, -1px);
}

.text-center {
  text-align: center;
}

.category-0 {
  background: #276163 !important;
}

.category-1 {
  background: #B30000 !important;
}

.category-2 {
  background: #F5816C !important;
}

.category-3 {
  background: var(--color-primary-blue) !important;
}

.category-4 {
  background: #8B3780 !important;
}

.category-5 {
  background: #707070 !important;
}

.category-6 {
  background: #466025 !important;
}

.category-7 {
  background: #9f6a38 !important;
}

.category-8 {
  background: #389c9f !important;
}

.category-9 {
  background: #8e389f !important;
}

.post-search-inline .post .cursor {
  display: inline-grid;
  grid-template-columns: 30% 70%;
  align-items: center;
}

.post-search-inline .post .cursor figure {
  margin-right: 50px;
}

@media (max-width: 900px) {
  .post-search-inline .post .cursor {
    display: block !important;
  }
}

.disabled {
  pointer-events:none;
  opacity:0.6;
}

.tooltip {
  position: relative;
  display: inline-block;
}

.tooltip .tooltiptext {
  visibility: hidden;
  width: 140px;
  background-color: #555;
  color: #fff;
  text-align: center;
  border-radius: 6px;
  padding: 5px;
  position: absolute;
  z-index: 1;
  bottom: 150%;
  left: 50%;
  margin-left: -75px;
  opacity: 0;
  transition: opacity 0.3s;
}

.tooltip .tooltiptext::after {
  content: "";
  position: absolute;
  top: 100%;
  left: 50%;
  margin-left: -5px;
  border-width: 5px;
  border-style: solid;
  border-color: #555 transparent transparent transparent;
}

.tooltip:hover .tooltiptext {
  visibility: visible;
  opacity: 1;
}

.container-header {
  padding-top: 50px;
  padding-bottom: 150px;
}

@keyframes show-hide {
  from {
    transform: scaleY(0);
    opacity: 0;
  }
  to {
    transform: scaleY(1);
    opacity: 1;
  }
}

.hidden {
  display: none;
  opacity: 0;
}

.show-hide {
  transform-origin: 50% 0;
  animation: show-hide .3s linear;
}

.hover-position-gestao-contratos {
  left: 0 !important;
  bottom: 0 !important;
}

.button-header-page {
  float: right;  
}

@media (max-width: 768px) {
  .button-header-page{
    float: none;
    margin-left: auto;
    margin-right: auto;
  }  
}

/* Estilos do checkbox Monditech */
.checkbox-monditech {
  position: relative;
  padding-left: 35px;
  margin-bottom: 12px;
  cursor: pointer;
  -webkit-user-select: none;
  -moz-user-select: none;
  -ms-user-select: none;
  user-select: none;
}

.checkbox-monditech input {
  opacity: 0;
  position: absolute;
  left: 0;
}

.checkmark-checkbox-monditech {
  position: absolute;
  top: 0;
  left: 0;
  height: 20px;
  width: 20px;
  background-color: rgba(14, 46, 189, 0.15);
  border: 2px solid var(--color-primary-blue);
  border-radius: 2px;
}

.checkbox-monditech:hover input ~ .checkmark-checkbox-monditech {
  background-color: rgba(14, 46, 189, 0.30);
}

.checkmark-checkbox-monditech:after {
  content: "";
  position: absolute;
  display: none;
}

.checkbox-monditech input:checked ~ .checkmark-checkbox-monditech:after {
  display: block;
}

.checkbox-monditech .checkmark-checkbox-monditech:after {
  left: 6px;
  top: 2px;
  width: 5px;
  height: 10px;
  border: solid var(--color-primary-blue);
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  -ms-transform: rotate(45deg);
  transform: rotate(45deg);
}

/* Modal de política de cookies - acima do header, bloqueia scroll */
.cookie-policy-modal.modal.is-active {
  z-index: 2147483647;
}
.cookie-policy-modal .modal-background,
.cookie-policy-modal .modal-card {
  z-index: 2147483647;
}
@media (max-width: 768px) {
  .cookie-policy-modal .modal-card {
    max-width: calc(100vw - 24px);
    margin: 12px;
    max-height: calc(100vh - 24px);
  }
  .cookie-policy-modal .modal-card-body {
    max-height: 60vh;
    overflow-y: auto;
    padding: 16px;
  }
}