/*--------------------------- Color variations ----------------------*/
/* Medium Layout: 1280px */
/* Tablet Layout: 768px */
/* Mobile Layout: 320px */
/* Wide Mobile Layout: 480px */
/* =================================== */
/*  Basic Style 
/* =================================== */
::-moz-selection {
  /* Code for Firefox */
  background-color: #235ee7;
  color: #fff;
}

.gradient-text {
  background: linear-gradient(90deg, #041e42, #1b365d, #ad841f);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  display: inline-block;
}

::selection {
  background-color: #235ee7;
  color: #fff;
}

::-webkit-input-placeholder {
  /* WebKit, Blink, Edge */
  color: #777777;
  font-weight: 300;
}

:-moz-placeholder {
  /* Mozilla Firefox 4 to 18 */
  color: #777777;
  opacity: 1;
  font-weight: 300;
}

::-moz-placeholder {
  /* Mozilla Firefox 19+ */
  color: #777777;
  opacity: 1;
  font-weight: 300;
}

:-ms-input-placeholder {
  /* Internet Explorer 10-11 */
  color: #777777;
  font-weight: 300;
}

::-ms-input-placeholder {
  /* Microsoft Edge */
  color: #777777;
  font-weight: 300;
}

body {
  color: #777777;
  font-family: "Poppins", sans-serif;
  font-size: 14px;
  font-weight: 300;
  line-height: 1.625em;
  position: relative;
}

ol,
ul {
  margin: 0;
  padding: 0;
  list-style: none;
}

select {
  display: block;
}

figure {
  margin: 0;
}

a {
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}

iframe {
  border: 0;
}

a,
a:focus,
a:hover {
  text-decoration: none;
  outline: 0;
}

.btn.active.focus,
.btn.active:focus,
.btn.focus,
.btn.focus:active,
.btn:active:focus,
.btn:focus {
  text-decoration: none;
  outline: 0;
}

.card-panel {
  margin: 0;
  padding: 60px;
}

/**
 *  Typography
 *
 **/
.btn i,
.btn-large i,
.btn-floating i,
.btn-large i,
.btn-flat i {
  font-size: 1em;
  line-height: inherit;
}

.gray-bg {
  background: #f9f9ff;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: "Poppins", sans-serif;
  color: #222222;
  line-height: 1.2em !important;
  margin-bottom: 0;
  margin-top: 0;
  font-weight: 600;
}

.h1,
.h2,
.h3,
.h4,
.h5,
.h6 {
  margin-bottom: 0;
  margin-top: 0;
  font-family: "Poppins", sans-serif;
  font-weight: 600;
  color: #222222;
}

h1,
.h1 {
  font-size: 36px;
}

h2,
.h2 {
  font-size: 30px;
}

h3,
.h3 {
  font-size: 24px;
}

h4,
.h4 {
  font-size: 18px;
}

h5,
.h5 {
  font-size: 16px;
}

h6,
.h6 {
  font-size: 14px;
  color: #222222;
}

td,
th {
  border-radius: 0px;
}

/**
 * For modern browsers
 * 1. The space content is one way to avoid an Opera bug when the
 *    contenteditable attribute is included anywhere else in the document.
 *    Otherwise it causes space to appear at the top and bottom of elements
 *    that are clearfixed.
 * 2. The use of `table` rather than `block` is only necessary if using
 *    `:before` to contain the top-margins of child elements.
 */
.clear::before,
.clear::after {
  content: " ";
  display: table;
}

.clear::after {
  clear: both;
}

.fz-11 {
  font-size: 11px;
}

.fz-12 {
  font-size: 12px;
}

.fz-13 {
  font-size: 13px;
}

.fz-14 {
  font-size: 14px;
}

.fz-15 {
  font-size: 15px;
}

.fz-16 {
  font-size: 16px;
}

.fz-18 {
  font-size: 18px;
}

.fz-30 {
  font-size: 30px;
}

.fz-48 {
  font-size: 48px !important;
}

.fw100 {
  font-weight: 100;
}

.fw300 {
  font-weight: 300;
}

.fw400 {
  font-weight: 400 !important;
}

.fw500 {
  font-weight: 500;
}

.f700 {
  font-weight: 700;
}

.fsi {
  font-style: italic;
}

.mt-10 {
  margin-top: 10px;
}

.mt-15 {
  margin-top: 15px;
}

.mt-20 {
  margin-top: 20px;
}

.mt-25 {
  margin-top: 25px;
}

.mt-30 {
  margin-top: 30px;
}

.mt-35 {
  margin-top: 35px;
}

.mt-40 {
  margin-top: 40px;
}

.mt-50 {
  margin-top: 50px;
}

.mt-60 {
  margin-top: 60px;
}

.mt-70 {
  margin-top: 70px;
}

.mt-80 {
  margin-top: 80px;
}

.mt-100 {
  margin-top: 100px;
}

.mt-120 {
  margin-top: 120px;
}

.mt-150 {
  margin-top: 150px;
}

.ml-0 {
  margin-left: 0 !important;
}

.ml-5 {
  margin-left: 5px !important;
}

.ml-10 {
  margin-left: 10px;
}

.ml-15 {
  margin-left: 15px;
}

.ml-20 {
  margin-left: 20px;
}

.ml-30 {
  margin-left: 30px;
}

.ml-50 {
  margin-left: 50px;
}

.mr-0 {
  margin-right: 0 !important;
}

.mr-5 {
  margin-right: 5px !important;
}

.mr-15 {
  margin-right: 15px;
}

.mr-10 {
  margin-right: 10px;
}

.mr-20 {
  margin-right: 20px;
}

.mr-30 {
  margin-right: 30px;
}

.mr-50 {
  margin-right: 50px;
}

.mb-0 {
  margin-bottom: 0px;
}

.mb-0-i {
  margin-bottom: 0px !important;
}

.mb-5 {
  margin-bottom: 5px;
}

.mb-10 {
  margin-bottom: 10px;
}

.mb-15 {
  margin-bottom: 15px;
}

.mb-20 {
  margin-bottom: 20px;
}

.mb-25 {
  margin-bottom: 25px;
}

.mb-30 {
  margin-bottom: 30px;
}

.mb-40 {
  margin-bottom: 40px;
}

.mb-50 {
  margin-bottom: 50px;
}

.mb-60 {
  margin-bottom: 60px;
}

.mb-70 {
  margin-bottom: 70px;
}

.mb-80 {
  margin-bottom: 80px;
}

.mb-90 {
  margin-bottom: 90px;
}

.mb-100 {
  margin-bottom: 100px;
}

.pt-0 {
  padding-top: 0px;
}

.pt-10 {
  padding-top: 10px;
}

.pt-15 {
  padding-top: 15px;
}

.pt-20 {
  padding-top: 20px;
}

.pt-25 {
  padding-top: 25px;
}

.pt-30 {
  padding-top: 30px;
}

.pt-40 {
  padding-top: 40px;
}

.pt-50 {
  padding-top: 50px;
}

.pt-60 {
  padding-top: 60px;
}

.pt-70 {
  padding-top: 70px;
}

.pt-80 {
  padding-top: 80px;
}

.pt-90 {
  padding-top: 90px;
}

.pt-100 {
  padding-top: 100px;
}

.pt-120 {
  padding-top: 120px;
}

.pt-150 {
  padding-top: 150px;
}

.pt-170 {
  padding-top: 170px;
}

.pb-0 {
  padding-bottom: 0px;
}

.pb-10 {
  padding-bottom: 10px;
}

.pb-15 {
  padding-bottom: 15px;
}

.pb-20 {
  padding-bottom: 20px;
}

.pb-25 {
  padding-bottom: 25px;
}

.pb-30 {
  padding-bottom: 30px;
}

.pb-40 {
  padding-bottom: 40px;
}

.pb-50 {
  padding-bottom: 50px;
}

.pb-60 {
  padding-bottom: 60px;
}

.pb-70 {
  padding-bottom: 70px;
}

.pb-80 {
  padding-bottom: 80px;
}

.pb-90 {
  padding-bottom: 90px;
}

.pb-100 {
  padding-bottom: 100px;
}

.pb-120 {
  padding-bottom: 120px;
}

.pb-150 {
  padding-bottom: 150px;
}

.pr-30 {
  padding-right: 30px;
}

.pl-30 {
  padding-left: 30px;
}

.pl-90 {
  padding-left: 90px;
}

.p-40 {
  padding: 40px;
}

.float-left {
  float: left;
}

.float-right {
  float: right;
}

.text-italic {
  font-style: italic;
}

.text-white {
  color: #fff;
}

.text-black {
  color: #000;
}

.transition {
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}

.section-full {
  padding: 100px 0;
}

.section-half {
  padding: 75px 0;
}

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

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

.text-rigth {
  text-align: right;
}

.flex {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
}

.inline-flex {
  display: -webkit-inline-box;
  display: -webkit-inline-flex;
  display: -moz-inline-flex;
  display: -ms-inline-flexbox;
  display: inline-flex;
}

.flex-grow {
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -moz-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
}

.flex-wrap {
  -webkit-flex-wrap: wrap;
  -moz-flex-wrap: wrap;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
}

.flex-left {
  -webkit-box-pack: start;
  -ms-flex-pack: start;
  -webkit-justify-content: flex-start;
  -moz-justify-content: flex-start;
  justify-content: flex-start;
}

.flex-middle {
  -webkit-box-align: center;
  -ms-flex-align: center;
  -webkit-align-items: center;
  -moz-align-items: center;
  align-items: center;
}

.flex-right {
  -webkit-box-pack: end;
  -ms-flex-pack: end;
  -webkit-justify-content: flex-end;
  -moz-justify-content: flex-end;
  justify-content: flex-end;
}

.flex-top {
  -webkit-align-self: flex-start;
  -moz-align-self: flex-start;
  -ms-flex-item-align: start;
  align-self: flex-start;
}

.flex-center {
  -webkit-box-pack: center;
  -ms-flex-pack: center;
  -webkit-justify-content: center;
  -moz-justify-content: center;
  justify-content: center;
}

.flex-bottom {
  -webkit-align-self: flex-end;
  -moz-align-self: flex-end;
  -ms-flex-item-align: end;
  align-self: flex-end;
}

.space-between {
  -webkit-box-pack: justify;
  -ms-flex-pack: justify;
  -webkit-justify-content: space-between;
  -moz-justify-content: space-between;
  justify-content: space-between;
}

.space-around {
  -ms-flex-pack: distribute;
  -webkit-justify-content: space-around;
  -moz-justify-content: space-around;
  justify-content: space-around;
}

.flex-column {
  -webkit-box-direction: normal;
  -webkit-box-orient: vertical;
  -webkit-flex-direction: column;
  -moz-flex-direction: column;
  -ms-flex-direction: column;
  flex-direction: column;
}

.flex-cell {
  display: -webkit-box;
  display: -webkit-flex;
  display: -moz-flex;
  display: -ms-flexbox;
  display: flex;
  -webkit-box-flex: 1;
  -webkit-flex-grow: 1;
  -moz-flex-grow: 1;
  -ms-flex-positive: 1;
  flex-grow: 1;
}

.display-table {
  display: table;
}

.light {
  color: #fff;
}

.dark {
  color: #222;
}

.relative {
  position: relative;
}

.overflow-hidden {
  overflow: hidden;
}

.overlay {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

.container.fullwidth {
  width: 100%;
}

.container.no-padding {
  padding-left: 0;
  padding-right: 0;
}

.no-padding {
  padding: 0;
}

.section-bg {
  background: #f9fafc;
}

@media (max-width: 767px) {
  .no-flex-xs {
    display: block !important;
  }
}

.row.no-margin {
  margin-left: 0;
  margin-right: 0;
}

.sample-text-area {
  background: #fff;
  padding: 100px 0 70px 0;
}

.text-heading {
  margin-bottom: 30px;
  font-size: 24px;
}

b,
sup,
sub,
u,
del {
  color: #235ee7;
}

h1 {
  font-size: 36px;
}

h2 {
  font-size: 30px;
}

h3 {
  font-size: 24px;
}

h4 {
  font-size: 18px;
}

h5 {
  font-size: 16px;
}

h6 {
  font-size: 14px;
}

h1,
h2,
h3,
h4,
h5,
h6 {
  line-height: 1.5em;
}

.typography h1,
.typography h2,
.typography h3,
.typography h4,
.typography h5,
.typography h6 {
  color: #777777;
}

.button-area {
  background: #fff;
}

.button-area .border-top-generic {
  padding: 70px 15px;
  border-top: 1px dotted #eee;
}

.button-group-area .genric-btn {
  margin-right: 10px;
  margin-top: 10px;
}

.button-group-area .genric-btn:last-child {
  margin-right: 0;
}

.genric-btn {
  display: inline-block;
  outline: none;
  line-height: 40px;
  padding: 0 30px;
  font-size: 0.8em;
  text-align: center;
  text-decoration: none;
  font-weight: 500;
  cursor: pointer;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}

.genric-btn:focus {
  outline: none;
}

.genric-btn.e-large {
  padding: 0 40px;
  line-height: 50px;
}

.genric-btn.large {
  line-height: 45px;
}

.genric-btn.medium {
  line-height: 30px;
}

.genric-btn.small {
  line-height: 25px;
}

.genric-btn.radius {
  border-radius: 3px;
}

.genric-btn.circle {
  border-radius: 20px;
}

.genric-btn.arrow {
  display: -webkit-inline-box;
  display: -ms-inline-flexbox;
  display: inline-flex;
  -webkit-box-align: center;
  -ms-flex-align: center;
  align-items: center;
}

.genric-btn.arrow span {
  margin-left: 10px;
}

.genric-btn.default {
  color: #222222;
  background: #f9f9ff;
  border: 1px solid transparent;
}

.genric-btn.default:hover {
  border: 1px solid #f9f9ff;
  background: #fff;
}

.genric-btn.default-border {
  border: 1px solid #f9f9ff;
  background: #fff;
}

.genric-btn.default-border:hover {
  color: #222222;
  background: #f9f9ff;
  border: 1px solid transparent;
}

.genric-btn.primary {
  color: #fff;
  background: #235ee7;
  border: 1px solid transparent;
}

.genric-btn.primary:hover {
  color: #235ee7;
  border: 1px solid #235ee7;
  background: #fff;
}

.genric-btn.primary-border {
  color: #235ee7;
  border: 1px solid #235ee7;
  background: #fff;
}

.genric-btn.primary-border:hover {
  color: #fff;
  background: #235ee7;
  border: 1px solid transparent;
}

.genric-btn.success {
  color: #fff;
  background: #4cd3e3;
  border: 1px solid transparent;
}

.genric-btn.success:hover {
  color: #4cd3e3;
  border: 1px solid #4cd3e3;
  background: #fff;
}

.genric-btn.success-border {
  color: #4cd3e3;
  border: 1px solid #4cd3e3;
  background: #fff;
}

.genric-btn.success-border:hover {
  color: #fff;
  background: #4cd3e3;
  border: 1px solid transparent;
}

.genric-btn.info {
  color: #fff;
  background: #38a4ff;
  border: 1px solid transparent;
}

.genric-btn.info:hover {
  color: #38a4ff;
  border: 1px solid #38a4ff;
  background: #fff;
}

.genric-btn.info-border {
  color: #38a4ff;
  border: 1px solid #38a4ff;
  background: #fff;
}

.genric-btn.info-border:hover {
  color: #fff;
  background: #38a4ff;
  border: 1px solid transparent;
}

.genric-btn.warning {
  color: #fff;
  background: #f4e700;
  border: 1px solid transparent;
}

.genric-btn.warning:hover {
  color: #f4e700;
  border: 1px solid #f4e700;
  background: #fff;
}

.genric-btn.warning-border {
  color: #f4e700;
  border: 1px solid #f4e700;
  background: #fff;
}

.genric-btn.warning-border:hover {
  color: #fff;
  background: #f4e700;
  border: 1px solid transparent;
}

.genric-btn.danger {
  color: #fff;
  background: #f44a40;
  border: 1px solid transparent;
}

.genric-btn.danger:hover {
  color: #f44a40;
  border: 1px solid #f44a40;
  background: #fff;
}

.genric-btn.danger-border {
  color: #f44a40;
  border: 1px solid #f44a40;
  background: #fff;
}

.genric-btn.danger-border:hover {
  color: #fff;
  background: #f44a40;
  border: 1px solid transparent;
}

.genric-btn.link {
  color: #222222;
  background: #f9f9ff;
  text-decoration: underline;
  border: 1px solid transparent;
}

.genric-btn.link:hover {
  color: #222222;
  border: 1px solid #f9f9ff;
  background: #fff;
}

.genric-btn.link-border {
  color: #222222;
  border: 1px solid #f9f9ff;
  background: #fff;
  text-decoration: underline;
}

.genric-btn.link-border:hover {
  color: #222222;
  background: #f9f9ff;
  border: 1px solid transparent;
}

.genric-btn.disable {
  color: #222222, 0.3;
  background: #f9f9ff;
  border: 1px solid transparent;
  cursor: not-allowed;
}

.generic-blockquote {
  padding: 30px 50px 30px 30px;
  background: #f9f9ff;
  border-left: 2px solid #235ee7;
}

.progress-table-wrap {
  overflow-x: scroll;
}

.progress-table {
  background: #f9f9ff;
  padding: 15px 0px 30px 0px;
  min-width: 800px;
}

.progress-table .serial {
  width: 11.83%;
  padding-left: 30px;
}

.progress-table .country {
  width: 28.07%;
}

.progress-table .visit {
  width: 19.74%;
}

.progress-table .percentage {
  width: 40.36%;
  padding-right: 50px;
}

.progress-table .table-head {
  display: flex;
}

.progress-table .table-head .serial,
.progress-table .table-head .country,
.progress-table .table-head .visit,
.progress-table .table-head .percentage {
  color: #222222;
  line-height: 40px;
  text-transform: uppercase;
  font-weight: 500;
}

.progress-table .table-row {
  padding: 15px 0;
  border-top: 1px solid #edf3fd;
  display: flex;
}

.progress-table .table-row .serial,
.progress-table .table-row .country,
.progress-table .table-row .visit,
.progress-table .table-row .percentage {
  display: flex;
  align-items: center;
}

.progress-table .table-row .country img {
  margin-right: 15px;
}

.progress-table .table-row .percentage .progress {
  width: 80%;
  border-radius: 0px;
  background: transparent;
}

.progress-table .table-row .percentage .progress .progress-bar {
  height: 5px;
  line-height: 5px;
}

.progress-table .table-row .percentage .progress .progress-bar.color-1 {
  background-color: #6382e6;
}

.progress-table .table-row .percentage .progress .progress-bar.color-2 {
  background-color: #e66686;
}

.progress-table .table-row .percentage .progress .progress-bar.color-3 {
  background-color: #f09359;
}

.progress-table .table-row .percentage .progress .progress-bar.color-4 {
  background-color: #73fbaf;
}

.progress-table .table-row .percentage .progress .progress-bar.color-5 {
  background-color: #73fbaf;
}

.progress-table .table-row .percentage .progress .progress-bar.color-6 {
  background-color: #6382e6;
}

.progress-table .table-row .percentage .progress .progress-bar.color-7 {
  background-color: #a367e7;
}

.progress-table .table-row .percentage .progress .progress-bar.color-8 {
  background-color: #e66686;
}

.single-gallery-image {
  margin-top: 30px;
  background-repeat: no-repeat !important;
  background-position: center center !important;
  background-size: cover !important;
  height: 200px;
}

.list-style {
  width: 14px;
  height: 14px;
}

.unordered-list li {
  position: relative;
  padding-left: 30px;
  line-height: 1.82em !important;
}

.unordered-list li:before {
  content: "";
  position: absolute;
  width: 14px;
  height: 14px;
  border: 3px solid #235ee7;
  background: #fff;
  top: 4px;
  left: 0;
  border-radius: 50%;
}

.ordered-list {
  margin-left: 30px;
}

.ordered-list li {
  list-style-type: decimal-leading-zero;
  color: #235ee7;
  font-weight: 500;
  line-height: 1.82em !important;
}

.ordered-list li span {
  font-weight: 300;
  color: #777777;
}

.ordered-list-alpha li {
  margin-left: 30px;
  list-style-type: lower-alpha;
  color: #235ee7;
  font-weight: 500;
  line-height: 1.82em !important;
}

.ordered-list-alpha li span {
  font-weight: 300;
  color: #777777;
}

.ordered-list-roman li {
  margin-left: 30px;
  list-style-type: lower-roman;
  color: #235ee7;
  font-weight: 500;
  line-height: 1.82em !important;
}

.ordered-list-roman li span {
  font-weight: 300;
  color: #777777;
}

.single-input {
  display: block;
  width: 100%;
  line-height: 40px;
  border: none;
  outline: none;
  background: #f9f9ff;
  padding: 0 20px;
}

.single-input:focus {
  outline: none;
}

.input-group-icon {
  position: relative;
}

.input-group-icon .icon {
  position: absolute;
  left: 20px;
  top: 0;
  line-height: 40px;
  z-index: 3;
}

.input-group-icon .icon i {
  color: #797979;
}

.input-group-icon .single-input {
  padding-left: 45px;
}

.single-textarea {
  display: block;
  width: 100%;
  line-height: 40px;
  border: none;
  outline: none;
  background: #f9f9ff;
  padding: 0 20px;
  height: 100px;
  resize: none;
}

.single-textarea:focus {
  outline: none;
}

.single-input-primary {
  display: block;
  width: 100%;
  line-height: 40px;
  border: 1px solid transparent;
  outline: none;
  background: #f9f9ff;
  padding: 0 20px;
}

.single-input-primary:focus {
  outline: none;
  border: 1px solid #235ee7;
}

.single-input-accent {
  display: block;
  width: 100%;
  line-height: 40px;
  border: 1px solid transparent;
  outline: none;
  background: #f9f9ff;
  padding: 0 20px;
}

.single-input-accent:focus {
  outline: none;
  border: 1px solid #eb6b55;
}

.single-input-secondary {
  display: block;
  width: 100%;
  line-height: 40px;
  border: 1px solid transparent;
  outline: none;
  background: #f9f9ff;
  padding: 0 20px;
}

.single-input-secondary:focus {
  outline: none;
  border: 1px solid #f09359;
}

.default-switch {
  width: 35px;
  height: 17px;
  border-radius: 8.5px;
  background: #f9f9ff;
  position: relative;
  cursor: pointer;
}

.default-switch input {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
}

.default-switch input + label {
  position: absolute;
  top: 1px;
  left: 1px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #235ee7;
  -webkit-transition: all 0.2s;
  -moz-transition: all 0.2s;
  -o-transition: all 0.2s;
  transition: all 0.2s;
  box-shadow: 0px 4px 5px 0px rgba(0, 0, 0, 0.2);
  cursor: pointer;
}

.default-switch input:checked + label {
  left: 19px;
}

.primary-switch {
  width: 35px;
  height: 17px;
  border-radius: 8.5px;
  background: #f9f9ff;
  position: relative;
  cursor: pointer;
}

.primary-switch input {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.primary-switch input + label {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
}

.primary-switch input + label:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: transparent;
  border-radius: 8.5px;
  cursor: pointer;
  -webkit-transition: all 0.2s;
  -moz-transition: all 0.2s;
  -o-transition: all 0.2s;
  transition: all 0.2s;
}

.primary-switch input + label:after {
  content: "";
  position: absolute;
  top: 1px;
  left: 1px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #fff;
  -webkit-transition: all 0.2s;
  -moz-transition: all 0.2s;
  -o-transition: all 0.2s;
  transition: all 0.2s;
  box-shadow: 0px 4px 5px 0px rgba(0, 0, 0, 0.2);
  cursor: pointer;
}

.primary-switch input:checked + label:after {
  left: 19px;
}

.primary-switch input:checked + label:before {
  background: #235ee7;
}

.confirm-switch {
  width: 35px;
  height: 17px;
  border-radius: 8.5px;
  background: #f9f9ff;
  position: relative;
  cursor: pointer;
}

.confirm-switch input {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.confirm-switch input + label {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
}

.confirm-switch input + label:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: transparent;
  border-radius: 8.5px;
  -webkit-transition: all 0.2s;
  -moz-transition: all 0.2s;
  -o-transition: all 0.2s;
  transition: all 0.2s;
  cursor: pointer;
}

.confirm-switch input + label:after {
  content: "";
  position: absolute;
  top: 1px;
  left: 1px;
  width: 15px;
  height: 15px;
  border-radius: 50%;
  background: #fff;
  -webkit-transition: all 0.2s;
  -moz-transition: all 0.2s;
  -o-transition: all 0.2s;
  transition: all 0.2s;
  box-shadow: 0px 4px 5px 0px rgba(0, 0, 0, 0.2);
  cursor: pointer;
}

.confirm-switch input:checked + label:after {
  left: 19px;
}

.confirm-switch input:checked + label:before {
  background: #4cd3e3;
}

.primary-checkbox {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  background: #f9f9ff;
  position: relative;
  cursor: pointer;
}

.primary-checkbox input {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.primary-checkbox input + label {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  border-radius: 3px;
  cursor: pointer;
  border: 1px solid #f1f1f1;
}

.primary-checkbox input:checked + label {
  background: url(../img/elements/primary-check.png) no-repeat center
    center/cover;
  border: none;
}

.confirm-checkbox {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  background: #f9f9ff;
  position: relative;
  cursor: pointer;
}

.confirm-checkbox input {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.confirm-checkbox input + label {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  border-radius: 3px;
  cursor: pointer;
  border: 1px solid #f1f1f1;
}

.confirm-checkbox input:checked + label {
  background: url(../img/elements/success-check.png) no-repeat center
    center/cover;
  border: none;
}

.disabled-checkbox {
  width: 16px;
  height: 16px;
  border-radius: 3px;
  background: #f9f9ff;
  position: relative;
  cursor: pointer;
}

.disabled-checkbox input {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.disabled-checkbox input + label {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  border-radius: 3px;
  cursor: pointer;
  border: 1px solid #f1f1f1;
}

.disabled-checkbox input:disabled {
  cursor: not-allowed;
  z-index: 3;
}

.disabled-checkbox input:checked + label {
  background: url(../img/elements/disabled-check.png) no-repeat center
    center/cover;
  border: none;
}

.primary-radio {
  width: 16px;
  height: 16px;
  border-radius: 8px;
  background: #f9f9ff;
  position: relative;
  cursor: pointer;
}

.primary-radio input {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.primary-radio input + label {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  cursor: pointer;
  border: 1px solid #f1f1f1;
}

.primary-radio input:checked + label {
  background: url(../img/elements/primary-radio.png) no-repeat center
    center/cover;
  border: none;
}

.confirm-radio {
  width: 16px;
  height: 16px;
  border-radius: 8px;
  background: #f9f9ff;
  position: relative;
  cursor: pointer;
}

.confirm-radio input {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.confirm-radio input + label {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  cursor: pointer;
  border: 1px solid #f1f1f1;
}

.confirm-radio input:checked + label {
  background: url(../img/elements/success-radio.png) no-repeat center
    center/cover;
  border: none;
}

.disabled-radio {
  width: 16px;
  height: 16px;
  border-radius: 8px;
  background: #f9f9ff;
  position: relative;
  cursor: pointer;
}

.disabled-radio input {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
}

.disabled-radio input + label {
  position: absolute;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  border-radius: 8px;
  cursor: pointer;
  border: 1px solid #f1f1f1;
}

.disabled-radio input:disabled {
  cursor: not-allowed;
  z-index: 3;
}

.disabled-radio input:checked + label {
  background: url(../img/elements/disabled-radio.png) no-repeat center
    center/cover;
  border: none;
}

.default-select {
  height: 40px;
}

.default-select .nice-select {
  border: none;
  border-radius: 0px;
  height: 40px;
  background: #f9f9ff;
  padding-left: 20px;
  padding-right: 40px;
}

.default-select .nice-select .list {
  margin-top: 0;
  border: none;
  border-radius: 0px;
  box-shadow: none;
  width: 100%;
  padding: 10px 0 10px 0px;
}

.default-select .nice-select .list .option {
  font-weight: 300;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  line-height: 28px;
  min-height: 28px;
  font-size: 12px;
  padding-left: 20px;
}

.default-select .nice-select .list .option.selected {
  color: #235ee7;
  background: transparent;
}

.default-select .nice-select .list .option:hover {
  color: #235ee7;
  background: transparent;
}

.default-select .current {
  margin-right: 50px;
  font-weight: 300;
}

.default-select .nice-select::after {
  right: 20px;
}

.form-select {
  height: 40px;
  width: 100%;
}

.form-select .nice-select {
  border: none;
  border-radius: 0px;
  height: 40px;
  background: #f9f9ff;
  padding-left: 45px;
  padding-right: 40px;
  width: 100%;
}

.form-select .nice-select .list {
  margin-top: 0;
  border: none;
  border-radius: 0px;
  box-shadow: none;
  width: 100%;
  padding: 10px 0 10px 0px;
}

.form-select .nice-select .list .option {
  font-weight: 300;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  line-height: 28px;
  min-height: 28px;
  font-size: 12px;
  padding-left: 45px;
}

.form-select .nice-select .list .option.selected {
  color: #235ee7;
  background: transparent;
}

.form-select .nice-select .list .option:hover {
  color: #235ee7;
  background: transparent;
}

.form-select .current {
  margin-right: 50px;
  font-weight: 300;
}

.form-select .nice-select::after {
  right: 20px;
}

/*--------------------------------------------------------------
# Header
--------------------------------------------------------------*/
#header {
  padding: 14px 0;
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  transition: all 0.5s;
  z-index: 997;
}

#header.header-scrolled {
  background: rgba(4, 30, 66, 0.85);
  transition: all 0.5s;
}

@media (max-width: 673px) {
  #logo {
    margin-left: 20px;
  }
}

#header #logo h1 {
  font-size: 34px;
  margin: 0;
  padding: 0;
  line-height: 1;
  font-weight: 700;
  letter-spacing: 3px;
}

#header #logo h1 a,
#header #logo h1 a:hover {
  color: #fff;
  padding-left: 10px;
  border-left: 4px solid #235ee7;
}

#header #logo img {
  padding: 0;
  margin: 0;
  cursor: pointer;
}

@media (max-width: 768px) {
  #header #logo h1 {
    font-size: 28px;
  }
  #header #logo img {
    max-height: 40px;
  }
}

/*--------------------------------------------------------------
# Navigation Menu
--------------------------------------------------------------*/

/* Estilo base dos links da navbar */
#nav-menu-container .nav-menu li a {
  color: #ffffff; /* cor inicial dos links */
  text-decoration: none;
  font-weight: 500;
  transition: color 0.3s ease, transform 0.3s ease; /* transição suave */
  position: relative;
}

/* Hover */
#nav-menu-container .nav-menu li a:hover {
  color: #ad841f; /* dourado */
  transform: translateY(-2px); /* leve movimento para cima */
}

/* Opcional: underline animado ao passar o mouse */
#nav-menu-container .nav-menu li a::after {
  content: "";
  display: block;
  height: 2px;
  width: 0;
  background: #ad841f;
  transition: width 0.3s ease;
  position: absolute;
  bottom: -1px; /* distância do link */
  left: 0;
}

#nav-menu-container .nav-menu li a:hover::after {
  width: 100%; /* underline se expande no hover */
}

/* Nav Menu Essentials */
.nav-menu,
.nav-menu * {
  margin: 0;
  padding: 0;
  list-style: none;
}

.nav-menu ul {
  position: absolute;
  display: none;
  top: 100%;
  left: 0;
  z-index: 99;
}

.nav-menu li {
  position: relative;
  white-space: nowrap;
}

.nav-menu > li {
  float: left;
}

.nav-menu li:hover > ul,
.nav-menu li.sfHover > ul {
  display: block;
}

.nav-menu ul ul {
  top: 0;
  left: 100%;
}

.nav-menu ul li {
  min-width: 180px;
  text-align: left;
}

/* Nav Menu Arrows */
.sf-arrows .sf-with-ul {
  padding-right: 30px;
}

.sf-arrows .sf-with-ul:after {
  content: "\f107";
  position: absolute;
  right: 15px;
  font-family: FontAwesome;
  font-style: normal;
  font-weight: normal;
}

.sf-arrows ul .sf-with-ul:after {
  content: "\f105";
}

/* Nav Menu Container */
#nav-menu-container {
  margin: 0;
}

@media (min-width: 1024px) {
  #nav-menu-container {
    padding-right: 60px;
  }
}

@media (max-width: 768px) {
  #nav-menu-container {
    display: none;
  }
}

/* Nav Menu Styling */
.nav-menu a {
  padding: 0 8px 0px 8px;
  text-decoration: none;
  display: inline-block;
  color: #fff;
  font-weight: 400;
  font-size: 11px;
  text-transform: uppercase;
  outline: none;
}

.nav-menu > li {
  margin-left: 10px;
}

.nav-menu ul {
  margin: 16px 0 0 0;
  padding: 10px;
  box-shadow: 0px 0px 30px rgba(127, 137, 161, 0.25);
  background: #fff;
}

.nav-menu ul li {
  transition: 0.3s;
}

.nav-menu ul li a {
  padding: 10px;
  color: #333;
  transition: 0.3s;
  display: block;
  font-size: 12px;
  text-transform: none;
}

.nav-menu ul li:hover > a {
  color: #235ee7;
}

.nav-menu ul ul {
  margin: 0;
}

/* Mobile Nav Toggle */
#mobile-nav-toggle {
  position: fixed;
  right: 15px;
  z-index: 999;
  top: 16px;
  border: 0;
  background: none;
  font-size: 24px;
  display: none;
  transition: all 0.4s;
  outline: none;
  cursor: pointer;
}

#mobile-nav-toggle i {
  color: #fff;
  font-weight: 900;
}

@media (max-width: 800px) {
  #mobile-nav-toggle {
    display: inline;
  }
  #nav-menu-container {
    display: none;
  }
}

/* Mobile Nav Styling */
#mobile-nav {
  position: fixed;
  top: 0;
  padding-top: 18px;
  bottom: 0;
  z-index: 998;
  background: rgba(4, 30, 66, 0.8);
  left: -260px;
  width: 260px;
  overflow-y: auto;
  transition: 0.4s;
}

#mobile-nav ul {
  padding: 0;
  margin: 0;
  list-style: none;
}

#mobile-nav ul li {
  position: relative;
}

#mobile-nav ul li a {
  color: #fff;
  font-size: 13px;
  text-transform: uppercase;
  overflow: hidden;
  padding: 10px 22px 10px 15px;
  position: relative;
  text-decoration: none;
  width: 100%;
  display: block;
  outline: none;
  font-weight: 700;
}

#mobile-nav ul li a:hover {
  color: #fff;
}

#mobile-nav ul li li {
  padding-left: 30px;
}

#mobile-nav ul .menu-has-children i {
  position: absolute;
  right: 0;
  z-index: 99;
  padding: 15px;
  cursor: pointer;
  color: #fff;
}

#mobile-nav ul .menu-has-children i.fa-chevron-up {
  color: #235ee7;
}

#mobile-nav ul .menu-has-children li a {
  text-transform: none;
}

#mobile-nav ul .menu-item-active {
  color: #235ee7;
}

#mobile-body-overly {
  width: 100%;
  height: 100%;
  z-index: 997;
  top: 0;
  left: 0;
  position: fixed;
  background: rgba(0, 0, 0, 0.7);
  display: none;
}

/* Mobile Nav body classes */
body.mobile-nav-active {
  overflow: hidden;
}

body.mobile-nav-active #mobile-nav {
  left: 0;
}

body.mobile-nav-active #mobile-nav-toggle {
  color: #fff;
}

.section-gap {
  padding: 120px 0;
}

.section-title {
  padding-bottom: 30px;
}

.section-title h2 {
  margin-bottom: 20px;
}

.section-title p {
  font-size: 16px;
  margin-bottom: 0;
}

@media (max-width: 991.98px) {
  .section-title p br {
    display: none;
  }
}

.p1-gradient-bg,
.primary-btn,
.home-about-area .home-about-right .primary-btn,
/* .single-unique-product:hover .primary-btn, */
.faq-left .card-header,
.single-footer-widget .click-btn,
.generic-banner {
  background-image: -moz-linear-gradient(0deg, #041e42 0%, #004c97 100%);
  background-image: -webkit-linear-gradient(0deg, #041e42 0%, #004c97 100%);
  background-image: -ms-linear-gradient(0deg, #041e42 0%, #004c97 100%);
}

.p1-gradient-color,
.footer-social a:hover i,
.single-footer-widget .bb-btn {
  background: -moz-linear-gradient(0deg, #d6a324 0%, #ad841f 100%);
  background: -webkit-linear-gradient(0deg, #d6a324 0%, #ad841f 100%);
  background: -ms-linear-gradient(0deg, #d6a324 0%, #ad841f 100%);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
}

.primary-btn {
  line-height: 36px;
  padding-left: 30px;
  padding-right: 60px;
  border-radius: 25px;
  border: none;
  color: #fff;
  display: inline-block;
  font-weight: 500;
  position: relative;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
  cursor: pointer;
  text-transform: uppercase;
  position: relative;
}

.primary-btn:focus {
  outline: none;
}

.primary-btn span {
  color: #fff;
  position: absolute;
  top: 50%;
  transform: translateY(-60%);
  right: 30px;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}

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

.primary-btn:hover span {
  color: #fff;
  right: 20px;
}

.primary-btn.white {
  border: 1px solid #fff;
  color: #fff;
}

.primary-btn.white span {
  color: #fff;
}

.primary-btn.white:hover {
  background: #fff;
  color: #235ee7;
}

.primary-btn.white:hover span {
  color: #235ee7;
}

.overlay {
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
}

:root {
  --visiotech-dark-blue: #0a2540;
  --visiotech-blue: #1a73e8;
  --visiotech-light-blue: #6ec1e4;
  --visiotech-gold: #d4af37;
}

.hero {
  position: relative;
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
}

.slides {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.slide {
  position: absolute;
  inset: 0;
  opacity: 0;
  transition: opacity 1s ease-in-out;
}

.slide.active {
  opacity: 1;
}

.slide img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.overlay {
  position: absolute;
  inset: 0;
}

.gradient-1 {
  background: linear-gradient(
    to bottom right,
    rgba(10, 37, 64, 0.9),
    rgba(26, 115, 232, 0.8),
    rgba(110, 193, 228, 0.7)
  );
}

.gradient-2 {
  background: linear-gradient(
    to bottom right,
    rgba(26, 115, 232, 0.9),
    rgba(110, 193, 228, 0.8),
    rgba(10, 37, 64, 0.7)
  );
}

.gradient-3 {
  background: linear-gradient(
    to bottom right,
    rgba(110, 193, 228, 0.9),
    rgba(26, 115, 232, 0.8),
    rgba(10, 37, 64, 0.7)
  );
}

/* Botões */
.control {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 20;
  background: rgba(255, 255, 255, 0.1);
  border: none;
  color: white;
  font-size: 2rem;
  padding: 0.6rem;
  border-radius: 50%;
  cursor: pointer;
  transition: background 0.3s;
}

.control:hover {
  background: rgba(255, 255, 255, 0.2);
}

.prev {
  left: 1rem;
}
.next {
  right: 1rem;
}

/* Conteúdo */
.hero-content {
  position: relative;
  z-index: 10;
  text-align: center;
  padding: 1rem;
  color: white;
  max-width: 800px;
}

.hero-content .header-socials{
  justify-content: center;
  padding-top: 20px;
}

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

@media (max-width: 430px) {
  .hero-content h1 {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 1rem;
}
}

.hero-content .highlight {
  color: var(--visiotech-gold);
}

.hero-content p {
  font-size: 1.3rem;
  opacity: 0.9;
  margin-bottom: 1.5rem;
}

@media (max-width: 430px) {
  .hero-content p {
  font-size: 0.8rem;
}
}

.hero-content img {
  margin-top: -150px;
}

@media (max-width: 430px) {
  .hero-content img {
  margin-top: -80px;
}
}

.cta {
  background: var(--visiotech-gold);
  border: none;
  padding: 1rem 2rem;
  border-radius: 10px;
  font-size: 1.1rem;
  font-weight: bold;
  color: white;
  cursor: pointer;
  transition: transform 0.3s, background 0.3s;
}

@media (max-width: 430px) {
  .cta {
  padding: 0.6rem 1.5rem;
  border-radius: 10px;
  font-size: 1rem;
}
}

.cta:hover {
  transform: scale(1.05);
  background: #c49d2f;
}

/* Indicadores */
.indicators {
  position: absolute;
  bottom: 80px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 12px;
  z-index: 20;
}

.dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.5);
  border: none;
  cursor: pointer;
  transition: all 0.3s;
}

.dot.active {
  background: var(--visiotech-gold);
  transform: scale(1.3);
}

/* Scroll Indicator */
.scroll-indicator {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  animation: bounce 2s infinite;
}

.mouse {
  width: 24px;
  height: 40px;
  border: 2px solid rgba(255, 255, 255, 0.5);
  border-radius: 12px;
  display: flex;
  justify-content: center;
}

.wheel {
  width: 4px;
  height: 10px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 2px;
  margin-top: 5px;
  animation: pulse 1.5s infinite;
}

@keyframes bounce {
  0%,
  100% {
    transform: translateX(-50%) translateY(0);
  }
  50% {
    transform: translateX(-50%) translateY(-10px);
  }
}

@keyframes pulse {
  0%,
  100% {
    opacity: 0.5;
    transform: translateY(0);
  }
  50% {
    opacity: 1;
    transform: translateY(5px);
  }
}

.primary-btn {
  background: #fff;
  border: 1px solid transparent;
  color: #222;
  padding-left: 40px;
  padding-right: 40px;
  border-radius: 50px;
}

.primary-btn:hover {
  border: 1px solid #fff;
  background: transparent;
  color: #fff;
}

/* MARCAS */
.brands-section {
  padding: 3rem 1rem;
  background: #f6f6f6;
  overflow: hidden;
  position: relative;
}

.brands-section .text-center {
  text-align: center;
  margin-bottom: 3rem;
}

.brands-section h2 {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 1rem;
  color: #111;
}

.brands-section p {
  font-size: 1.125rem;
  color: #555;
  max-width: 700px;
  margin: 0 auto;
}

/* CAROUSEL */
.carousel-wrapper {
  position: relative;
  overflow: hidden;
  width: 100%;
}

.carousel-track {
  display: flex;
  gap: 1.5rem;
  animation: scroll-left 55s linear infinite;
  height: 115px;
  width: max-content; /* garante que o conteúdo estenda */
}

.brand-card {
  flex-shrink: 0;
  min-width: 200px;
  height: 100px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.brand-card-inner {
  background: #fff;
  border-radius: 12px;
  padding: 1.5rem;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  transition: box-shadow 0.3s ease, filter 0.3s ease;
}

.brand-card-inner:hover {
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2);
  filter: grayscale(0%);
}

.brand-card img {
  max-width: 120px;
  max-height: 120px;
  object-fit: contain;
}

/* Animação do scroll */
@keyframes scroll-left {
  0% {
    transform: translateX(0);
  }
  100% {
    transform: translateX(calc(-1 * var(--scroll-width)));
  }
}

/* Gradientes laterais */
.fade-left,
.fade-right {
  position: absolute;
  top: 0;
  width: 100px;
  height: 100%;
  z-index: 10;
  pointer-events: none;
}

.fade-left {
  left: 0;
  background: linear-gradient(to right, #f6f6f6, transparent);
}

.fade-right {
  right: 0;
  background: linear-gradient(to left, #f6f6f6, transparent);
}

/* ===== RESPONSIVIDADE ===== */

/* Tablets */
@media (max-width: 991px) {
  .brands-section h2 {
    font-size: 1.75rem;
  }

  .brands-section p {
    font-size: 1rem;
    padding: 0 1rem;
  }

  .carousel-track {
    gap: 1rem;
    height: 100px;
    animation: scroll-left 70s linear infinite;
  }

  .brand-card {
    min-width: 160px;
    height: 90px;
  }

  .brand-card img {
    max-width: 100px;
    max-height: 100px;
  }

  .fade-left,
  .fade-right {
    width: 60px;
  }
}

/* Celulares */
@media (max-width: 576px) {
  .brands-section {
    padding: 2rem 0.5rem;
  }

  .brands-section h2 {
    font-size: 1.5rem;
  }

  .brands-section p {
    font-size: 0.95rem;
    padding: 0 0.5rem;
  }

  .carousel-track {
    gap: 0.75rem;
    height: 80px;
    animation: scroll-left 85s linear infinite;
  }

  .brand-card {
    min-width: 130px;
    height: 70px;
  }

  .brand-card img {
    max-width: 80px;
    max-height: 80px;
  }

  .fade-left,
  .fade-right {
    width: 40px;
  }
}

:root {
  --visiotech-dark-blue: #0a2540;
  --visiotech-gold: #d4af37;
}

.produtos {
  padding: 5rem 1rem;
  background: #f9fafb;
}

.container {
  max-width: 1200px;
  margin: 0 auto;
}

.header {
  margin-bottom: 4rem;
}

.header .title {
  font-size: 2.5rem;
  font-weight: bold;
  color: var(--visiotech-dark-blue);
  margin-bottom: 1rem;
}

.header .subtitle {
  font-size: 1.2rem;
  color: #4b5563;
  max-width: 700px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Grid */
.grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 768px) {
  .grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

/* Card */
.card {
  background: white;
  border-radius: 1rem;
  overflow: hidden;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: transform 0.3s, box-shadow 0.3s;
}

.card:hover {
  transform: translateY(-8px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
}

/* Imagem */
.image-wrapper {
  position: relative;
  overflow: hidden;
}

.image-wrapper img {
  width: 100%;
  height: 200px;
  object-fit: cover;
  transition: transform 0.3s;
}

.card:hover .image-wrapper img {
  transform: scale(1.1);
}

.icon {
  position: absolute;
  top: 1rem;
  left: 1rem;
  background: var(--visiotech-gold);
  color: white;
  padding: 0.6rem;
  border-radius: 0.5rem;
  font-size: 1.2rem;
}

/* Conteúdo */
.content {
  padding: 1.5rem;
}

.content h3 {
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--visiotech-dark-blue);
  margin-bottom: 0.8rem;
}

.content p {
  color: #4b5563;
  line-height: 1.6;
}

/* PRODUTOS */
.unique-feature-area {
  background-color: #041e42;
  padding: 40px 0;
}

/* slider */
.product-slider-container {
  position: relative;
  margin-top: 30px;
}
.product-slider-track-container {
  overflow: hidden;
}
.product-slider-track {
  display: flex;
  gap: 20px; /* espaço entre cards */
  transition: transform 0.5s ease;
  will-change: transform;
  align-items: stretch;
  padding-bottom: 10px;
}

/* card sizing: 4 por linha no desktop (levando em conta 3 gaps de 20px) */
.single-unique-product {
  background: #fff;
  border-radius: 10px;
  text-align: center;
  box-sizing: border-box;
  flex: 0 0 calc((100% - 60px) / 4); /* 4 cards, gap total = 3*20 = 60px */
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  overflow: hidden;
  border: 3px solid #eee;
  transition: 0.3s;
}

.single-unique-product:hover {
  box-shadow: 0 6px 20px #0000001a;
  border-color: #ad841f;
}

.single-unique-product img {
  width: 100%;
  height: auto;
  object-fit: cover;
  object-position: center;
  padding: 0;
  transition: 0.3s;
}

.single-unique-product:hover img {
  transform: scale(1.05);
}


.single-unique-product .desc {
  background: #dfdfdf;
  padding: 15px 10px;
  border-bottom-left-radius: 10px;
  border-bottom-right-radius: 10px;
}

.single-unique-product h6 {
  color: #041e42;
  margin: 8px 0;
}

.single-unique-product h4 {
  color: #ad841f;
  margin: 8px 0;
}

.single-unique-product .primary-btn {
  background: #ad841f;
  color: #ffffff;
  border: 2px solid #fff;
  border-radius: 10px;
  padding: 0 12px;
  text-decoration: none;
  display: inline-block;
  margin-top: 4px;
  font-weight: 600;
}

.single-unique-product .primary-btn:hover {
  transition: 0.3s;
  background-color: #041e42;
  color: #fff;
}

/* botões */
.product-slider-btn {
  position: absolute;
  top: 45%;
  transform: translateY(-50%);
  background: rgba(0, 0, 0, 0.5);
  color: #fff;
  border: none;
  width: 42px;
  height: 42px;
  border-radius: 50%;
  cursor: pointer;
  z-index: 5;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 22px;
}
.product-slider-btn.prev {
  left: 8px;
}
.product-slider-btn.next {
  right: 8px;
}
.product-slider-btn[disabled] {
  opacity: 0.35;
  cursor: default;
}

/* responsive: 3 por linha */
@media (max-width: 1024px) {
  .single-unique-product {
    flex: 0 0 calc((100% - 40px) / 3);
  } /* 3 cards, gap total=2*20=40 */
}

/* 2 por linha */
@media (max-width: 768px) {
  .single-unique-product {
    flex: 0 0 calc((100% - 20px) / 2);
  } /* 2 cards, gap total=1*20=20 */
}

/* 1 por linha (mobile) */
@media (max-width: 430px) {
  .single-unique-product {
    flex: 0 0 100%;
  }
  .unique-feature-area h1 {
    font-size: 28px;
  }
  .product-slider-btn {
    top: 50%;
    width: 36px;
    height: 36px;
    font-size: 18px;
  }
}

/* REVIEW */

.single-review {
  text-align: center;
  background-color: #f9f9ff;
  padding: 30px;
  margin-bottom: 30px;
  border-radius: 10px;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;

  height: 300px;
}

.single-review p {
  margin-top: 20px;
}

.single-review .star .checked {
  color: orange;
}

.single-review:hover {
  cursor: pointer;
  background-color: white;
  box-shadow: 0px 20px 30px 0px rgba(35, 94, 231, 0.2);
}

.review-content {
  margin-top: 0;
  margin-bottom: 50px;
  text-align: center;
  background: rgba(4, 30, 66, 0.55);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-radius: 12px;
  padding: 20px;
}

@media (max-width: 430px) {
  .review-area h1 {
    font-size: 22px;
  }
}

/* FOOTER */

.footer-area {
  padding-top: 70px;
  background-color: #041e42;
}

/* Ícone da marca */
.brand-icon {
  width: 40px;
  height: 40px;
  border-radius: 8px;
  display: flex;
  align-items: center;
  justify-content: center;
}

/* Ícones de contato */
.icon-accent {
  width: 20px;
  height: 20px;
  padding-right: 25px;
  color: #ad841f;
  flex-shrink: 0;
}

/* Ícones sociais */
.social-link {
  width: 40px;
  height: 40px;
  font-size: 20px;
  margin-right: 10px;
  margin-bottom: 15px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  transition: 0.3s;
}
.social-link:hover {
  background: #fff;
  color: #041e42;
}

h6 {
  margin-bottom: 25px;
  font-size: 18px;
  font-weight: 600;
}

.copy-right-text i,
.copy-right-text a {
  color: #235ee7;
}

.footer-social a {
  font-size: 30px;
  padding-right: 25px;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}

.footer-social i {
  color: #cccccc;
  -webkit-transition: all 0.3s ease 0s;
  -moz-transition: all 0.3s ease 0s;
  -o-transition: all 0.3s ease 0s;
  transition: all 0.3s ease 0s;
}

@media (max-width: 991.98px) {
  .footer-social {
    text-align: left;
  }
}

.single-footer-widget input {
  border: none;
  width: 80% !important;
  font-weight: 300;
  background: #191919;
  color: #777;
  padding-left: 20px;
  border-radius: 0;
  font-size: 14px;
  padding: 10px 18px;
}

.single-footer-widget input:focus {
  background-color: #191919;
}

.single-footer-widget .bb-btn {
  color: #fff;
  font-weight: 300;
  border-radius: 0;
  z-index: 9999;
  cursor: pointer;
}

.single-footer-widget .info {
  position: absolute;
  margin-top: 20%;
  color: #fff;
  font-size: 12px;
}

.single-footer-widget .info.valid {
  color: green;
}

.single-footer-widget .info.error {
  color: red;
}

.single-footer-widget .click-btn {
  color: #fff;
  border-radius: 0;
  border-top-left-radius: 0px;
  border-bottom-left-radius: 0px;
  padding: 8px 12px;
  border: 0;
}

.single-footer-widget ::-moz-selection {
  /* Code for Firefox */
  background-color: #191919 !important;
  color: #777777;
}

.single-footer-widget ::selection {
  background-color: #191919 !important;
  color: #777777;
}

.single-footer-widget ::-webkit-input-placeholder {
  /* WebKit, Blink, Edge */
  color: #777777;
  font-weight: 300;
}

.single-footer-widget :-moz-placeholder {
  /* Mozilla Firefox 4 to 18 */
  color: #777777;
  opacity: 1;
  font-weight: 300;
}

.single-footer-widget ::-moz-placeholder {
  /* Mozilla Firefox 19+ */
  color: #777777;
  opacity: 1;
  font-weight: 300;
}

.single-footer-widget :-ms-input-placeholder {
  /* Internet Explorer 10-11 */
  color: #777777;
  font-weight: 300;
}

.single-footer-widget ::-ms-input-placeholder {
  /* Microsoft Edge */
  color: #777777;
  font-weight: 300;
}

@media (max-width: 991.98px) {
  .single-footer-widget {
    margin-bottom: 30px;
  }
}

@media (max-width: 800px) {
  .social-widget {
    margin-top: 30px;
  }
}

.footer-text {
  padding-top: 20px;
}

.footer-text a,
.footer-text i {
  color: #ad841f;
}

.whole-wrap {
  background-color: #fff;
}

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

.generic-banner .height {
  height: 600px;
}

@media (max-width: 767.98px) {
  .generic-banner .height {
    height: 400px;
  }
}

.generic-banner .generic-banner-content h2 {
  line-height: 1.2em;
  margin-bottom: 20px;
}

@media (max-width: 991.98px) {
  .generic-banner .generic-banner-content h2 br {
    display: none;
  }
}

.generic-banner .generic-banner-content p {
  text-align: center;
  font-size: 16px;
}

@media (max-width: 991.98px) {
  .generic-banner .generic-banner-content p br {
    display: none;
  }
}

.generic-content h1 {
  font-weight: 600;
}

.about-generic-area {
  background: #fff;
}

.about-generic-area p {
  margin-bottom: 20px;
}

.white-bg {
  background: #fff;
}

.section-top-border {
  padding: 70px 0;
  border-top: 1px dotted #eee;
}

.switch-wrap {
  margin-bottom: 10px;
}

.switch-wrap p {
  margin: 0;
}

/* COLORS */

.text-azul-escuro {
  color: #041e42;
}
.text-azul {
  color: #1b365d;
}
.text-azul-claro {
  color: #004c97;
}
.text-dourado {
  color: #ad841f;
}

/* =========================
   CTA SECTION
========================= */
.cta-section {
  padding: 5rem 0;
  background: linear-gradient(to right, #004c97, #5e93d8);
  color: white;
  text-align: center;
}
.cta-section .cta-icon {
  width: 64px;
  height: 64px;
  background: #ad841f;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 1.5rem;
  color: #fff;
  font-size: 1.8rem;
}
.cta-section .btn-accent {
  background-color: #ad841f;
  color: #fff;
  font-weight: 600;
  transition: all 0.3s ease;
}
.cta-section .btn-accent:hover {
  background-color: #e0a800;
  color: #000;
}
.cta-section .trust-indicators {
  margin-top: 3rem;
  color: rgba(255, 255, 255, 0.85);
}

@media (min-width: 576px) {
  .cta-section .trust-indicators {
    gap: 20px;
  }
}

.cta-section .trust-item {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}

.cta-section .trust-dot {
  width: 8px;
  height: 8px;
  background: #ad841f;
  border-radius: 50%;
}

/* =========================
   CONTACT SECTION
========================= */
#contact {
  padding: 5rem 0;
  background: #fafafa;
}
#contact .contact-card {
  border-radius: 10px;
  background: #fff;
  border: 1px solid #e0e0e0;
  transition: box-shadow 0.3s ease;
}
#contact .contact-card:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.08);
}
#contact .icon-circle {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
#contact .store-img {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
}
#contact .store-img img {
  width: 100%;
  height: 24rem;
  object-fit: cover;
  border-radius: 10px;
}
#contact .store-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent);
}
#contact .store-info {
  position: absolute;
  bottom: 1.5rem;
  left: 1.5rem;
  color: #fff;
}
#contact .map-placeholder {
  height: 24rem;
  border-radius: 10px;
  position: relative;
  overflow: hidden;
  background: #f1f1f1;
}
#contact .map-gradient {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to bottom right,
    rgba(13, 110, 253, 0.1),
    rgba(111, 66, 193, 0.1)
  );
}

/* =========================
   PROMOÇÕES SECTION
========================= */
.promocoes {
  padding: 20px;
  background: linear-gradient(135deg, #fdfdfd, #f3f3f3);
}
.promocoes .container {
  max-width: 1200px;
  margin: 0 auto;
}
.promocoes .header {
  text-align: center;
  margin-bottom: 50px;
}
.promocoes .badge {
  display: inline-block;
  padding: 6px 14px;
  border: 1px solid #ad841f;
  color: #ad841f;
  border-radius: 20px;
  font-weight: bold;
  margin-bottom: 10px;
}
.promocoes h2 {
  font-size: 36px;
  margin-bottom: 10px;
}
.promocoes .highlight {
  color: #ad841f;
}
.promocoes p {
  color: #555;
  font-size: 18px;
}

/* --- Cards --- */
.promocoes .cards {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 20px;
  margin-bottom: 60px;
}
.promocoes .card {
  border: 2px solid #eee;
  border-radius: 10px;
  overflow: hidden;
  transition: 0.3s;
  background: #fff;
}
.promocoes .card:hover {
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.1);
  border-color: #ad841f;
}
.promocoes .card-img {
  position: relative;
  height: 200px;
  overflow: hidden;
}
.promocoes .card-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: 0.3s;
}
.promocoes .card:hover img {
  transform: scale(1.05);
}
.promocoes .badge-top {
  position: absolute;
  top: 15px;
  right: 15px;
  background: #c62828;
  color: #fff;
  padding: 6px 12px;
  border-radius: 6px;
  font-weight: bold;
}
.promocoes .badge-top.red {
  background: #e53935;
}
.promocoes .badge-top.green {
  background: #43a047;
}
.promocoes .card-body {
  padding: 20px;
  text-align: center;
}
.promocoes .card-body h3 {
  font-size: 22px;
  margin-bottom: 10px;
  color: #ad841f;
}
.promocoes .card-body p {
  margin-bottom: 20px;
  font-size: 15px;
}
.promocoes .btn {
  padding: 12px 20px;
  background: #ad841f;
  color: #fff;
  border: none;
  border-radius: 6px;
  font-weight: bold;
  cursor: pointer;
  transition: 0.3s;
}
.promocoes .btn:hover {
  background: #004c97;
}
.promocoes .btn i {
  margin-left: 6px;
}
.promocoes .btn.big {
  font-size: 20px;
  padding: 18px 40px;
  border-radius: 40px;
}

/* --- Brands --- */
.promocoes .brands {
  background: #fafafa;
  border-radius: 20px;
  padding: 40px;
  margin-bottom: 60px;
  border: 1px solid #ddd;
}

.promocoes .brands-header {
  text-align: center;
  margin-bottom: 40px;
}

.promocoes .brands-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); /* reduz o min-width */
  gap: 20px;
}

.promocoes .brand {
  border-radius: 12px;
  overflow: hidden;
  border: 1px solid #ddd;
  background: #fff;
}

.promocoes .brand-img {
  position: relative;
  height: 120px;
  overflow: hidden;
}

.promocoes .brand-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.promocoes .brand-body {
  padding: 16px; /* menos padding em telas menores */
}

.promocoes .brand-body h4 {
  display: flex;
  align-items: center;
  font-size: 18px;
  margin-bottom: 8px;
}

.promocoes .brand-body h4 i {
  margin-right: 8px;
  color: #ad841f;
}

.promocoes .brand-body .offer {
  display: block;
  font-size: 20px;
  font-weight: bold;
  color: #c62828;
}

/* --- Ajustes para celular --- */
@media (max-width: 480px) {
  .promocoes .brands {
    padding: 20px; /* reduz padding lateral */
  }

  .promocoes .brands-header {
    margin-bottom: 20px;
  }

  .promocoes .brands-grid {
    grid-template-columns: 1fr; /* força 1 card por linha */
    gap: 16px;
  }

  .promocoes .brand-img {
    height: 100px; /* imagens mais compactas */
  }

  .promocoes .brand-body h4 {
    font-size: 16px;
  }

  .promocoes .brand-body .offer {
    font-size: 18px;
  }
}

/* overlay */
.promocoes .brand-img::after {
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 1;
}

/* Premium: amarelo escuro */
.promocoes .brand.premium .brand-img::after {
  background: linear-gradient(
    to right,
    rgba(204, 153, 0, 0.9),
    rgba(204, 153, 0, 0.3)
  );
}

/* Outras: cinza escuro */
.promocoes .brand.other .brand-img::after {
  background: linear-gradient(
    to right,
    rgba(51, 51, 51, 0.9),
    rgba(51, 51, 51, 0.3)
  );
}

/* --- Payment --- */
.promocoes .payment {
  border: 1px solid #ddd;
  border-radius: 16px;
  padding: 40px;
  margin-bottom: 50px;
  background: #fefefe;
}
.promocoes .payment-header {
  text-align: center;
  margin-bottom: 30px;
}
.promocoes .payment-header .icon {
  width: 60px;
  height: 60px;
  background: #ffe5e5;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0 auto 15px;
}
.promocoes .payment-header h3 {
  font-size: 26px;
  margin-bottom: 6px;
}
.promocoes .payment-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: 20px;
}
.promocoes .pay-card {
  text-align: center;
  padding: 20px;
  border-radius: 10px;
  border: 1px solid #ddd;
  background: #fff;
  transition: 0.3s;
}
.promocoes .pay-card:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.08);
}
.promocoes .pay-card strong {
  display: block;
  font-size: 24px;
  color: #c62828;
}
.promocoes .highlight-card {
  background: #ffebee;
  border-color: #c62828;
}

/* --- CTA final --- */
.promocoes .cta {
  text-align: center;
  margin-top: 50px;
}
.promocoes .cta p {
  font-size: 18px;
  margin-bottom: 20px;
  color: #666;
}

/* ======= GALERIA ======= */
.galeria-section {
  padding: 80px 20px;
  background: linear-gradient(135deg, #041e42, #004c97);
}

.galeria-container {
  max-width: 1200px;
  margin: 0 auto;
}

.galeria-header {
  text-align: center;
  margin-bottom: 60px;
}

.galeria-title {
  font-size: 2.5rem;
  font-weight: bold;
  margin-bottom: 20px;
  color: #222;
}

.galeria-subtitle {
  font-size: 1.2rem;
  color: #555;
  max-width: 750px;
  margin: 0 auto;
  line-height: 1.6;
}

.galeria-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}

@media (min-width: 640px) {
  .galeria-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 1024px) {
  .galeria-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1280px) {
  .galeria-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* ITEM */
.galeria-item {
  position: relative;
  overflow: hidden;
  border-radius: 15px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
  transition: transform 0.4s ease, box-shadow 0.4s ease;
  cursor: pointer;
}
.galeria-item:hover {
  transform: scale(1.02);
  box-shadow: 0 6px 20px rgba(0, 0, 0, 0.15);
}

.galeria-item img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.6s ease;
}
.galeria-item:hover img {
  transform: scale(1.1);
}

/* Overlay */
.galeria-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to top,
    rgba(173, 132, 31  , 0.8),
    rgba(173, 132, 31  , 0.6),
    transparent
  );
  opacity: 0;
  transition: opacity 0.4s ease;
}
.galeria-item:hover .galeria-overlay {
  opacity: 1;
}

/* Texto */
.galeria-texto {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 15px;
  color: #fff;
  transform: translateY(20px);
  opacity: 0;
  transition: all 0.4s ease;
}
.galeria-item:hover .galeria-texto {
  transform: translateY(0);
  opacity: 1;
}
.galeria-texto h3 {
  font-size: 1rem;
  margin-bottom: 5px;
  font-weight: bold;
}
.galeria-texto p {
  font-size: 0.9rem;
  color: #ddd;
  line-height: 1.4;
}

/* Destaque dos grandes */
.galeria-item.large {
  grid-column: span 2;
  grid-row: span 2;
}

/* Seção principal */
.visiotech-services-section {
  background: #f6f6f6;
  position: relative;
  overflow: hidden;
}

/* Badge */
.visiotech-section-badge {
  background: rgba(13, 110, 253, 0.1);
  color: #ad841f;
  font-size: 0.9rem;
  font-weight: 500;
  border-radius: 20px;
}

/* Fundo decorativo */
.visiotech-bg-grid-pattern {
  background-image: radial-gradient(
    circle,
    rgba(0, 0, 0, 0.05) 1px,
    transparent 1px
  );
  background-size: 20px 20px;
  opacity: 0.05;
  z-index: 0;
  pointer-events: none;
}

.visiotech-bg-circle,
.visiotech-bg-circle-alt {
  position: absolute;
  border-radius: 50%;
  pointer-events: none;
  z-index: 0;
}
.visiotech-bg-circle {
  width: 120px;
  height: 120px;
  background: rgba(13, 110, 253, 0.1);
  filter: blur(60px);
  top: 15%;
  left: 10%;
}
.visiotech-bg-circle-alt {
  width: 160px;
  height: 160px;
  background: rgba(255, 193, 7, 0.1);
  filter: blur(70px);
  bottom: 15%;
  right: 10%;
}

/* Cards diferenciais */
.visiotech-card {
  background: #fff;
  border: 1px solid rgba(0, 0, 0, 0.05);
  transition: all 0.3s ease;
  border-radius: 20px;
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  z-index: 1;
}
.visiotech-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.3);
}
.visiotech-icon-box {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 12px;
  font-size: 1.2rem;
}

/* Imagem */
.visiotech-image-wrapper {
  position: relative;
  border-radius: 20px;
  overflow: hidden;
}
.visiotech-image-wrapper img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.visiotech-image-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(0, 0, 0, 0.6), transparent);
}
.visiotech-image-text {
  z-index: 2;
  position: relative;
}

/* Stats */
.visiotech-stats {
  background: rgba(255, 255, 255, 0.9);
  border: 1px solid rgba(0, 0, 0, 0.05);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
  border-radius: 20px;
  z-index: 1;
}
.visiotech-stats h3 {
  font-size: 2rem;
}

/* Section */
.partners-section {
  padding: 1rem;
  background: linear-gradient(135deg, #fdfdfd, #f3f3f3);
}

/* Container */
.partners-container {
  max-width: 1200px;
  margin: 0 auto;
}

/* Header */
.partners-header {
  text-align: center;
  margin-bottom: 2rem;
}
.partners-header h2 {
  font-size: 2rem;
  font-weight: bold;
  margin-bottom: 1rem;
  color: #111;
}

.partners-header .partners-highlight {
  color: #ad841f;
}
.partners-header p {
  font-size: 1.125rem;
  color: #555;
  max-width: 700px;
  margin: 0 auto;
}

/* Grid de Parceiros */
.partners-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr); /* no mobile já fica 2 colunas */
  gap: 1rem;
  margin-bottom: 1rem;
  padding: 1rem;
}
@media (min-width: 768px) {
  .partners-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1024px) {
  .partners-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Cards */
.partner-card {
  background: #fff;
  border: 1px solid #e2e8f0;
  border-radius: 1rem;
  padding: 1rem;
  text-align: center;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.04);
  transition: all 0.3s ease;
}
.partner-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 6px 14px rgba(0, 0, 0, 0.08);
}
.partner-logo {
  background: linear-gradient(to bottom right, #f1f5f9, #e2e8f0);
  border-radius: 0.75rem;
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  overflow: hidden;
}
.partner-logo img {
  width: 120px;
  height: 120px;
  object-fit: contain;
  /* filter: grayscale(100%); */
  transition: filter 0.3s ease;
}

/* Escopo geral */
.vtx-section {
  position: relative;
  padding: 80px 20px;
  background: linear-gradient(to bottom right, #f0f9ff, #4a6c8f, #054688 );
  overflow: hidden;
  font-family: Arial, sans-serif;
  color: #1e293b;
}

/* Fundo decorativo */
.vtx-bg-decor {
  position: absolute;
  inset: 0;
  opacity: 0.05;
}
.vtx-bg-circle {
  position: absolute;
  border-radius: 50%;
  filter: blur(80px);
}
.vtx-circle-1 {
  top: 80px;
  left: 40px;
  width: 130px;
  height: 130px;
  background: #ad841f;
}
.vtx-circle-2 {
  bottom: 80px;
  right: 40px;
  width: 160px;
  height: 160px;
  background: #ad841f;
}

/* Container */
.vtx-container {
  max-width: 1200px;
  margin: 0 auto;
  position: relative;
}

/* Header */
.vtx-header {
  text-align: center;
  margin-bottom: 64px;
}
.vtx-header-badge {
  display: inline-block;
  background: rgba(173, 132, 31, 0.3);
  color: #1B365D;
  padding: 6px 14px;
  border-radius: 20px;
  font-size: 14px;
  margin-bottom: 16px;
}
.vtx-title {
  font-size: 40px;
  font-weight: 700;
  margin-bottom: 20px;
}
.vtx-title span {
  color: #ad841f;
}
.vtx-subtitle {
  font-size: 18px;
  color: #fff;
  max-width: 700px;
  margin: 0 auto;
  line-height: 1.6;
}

/* Materials */
.vtx-materials {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
  gap: 30px;
  margin-bottom: 64px;
  cursor: pointer;
}

.vtx-materials h3 {
  font-weight: 700;
  margin-bottom: 10px;
  color: #ad841f;
}

.vtx-material-card {
  background: linear-gradient(to right, #0f172a, #1e293b, #0f172a);
  color: #fff;
  padding: 18px;
  border-radius: 16px;
  text-align: center;
  transition: box-shadow 0.3s;
  transition: 0.3s;
}

.vtx-material-card:hover {
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.4);
  transform: scale(1.05);
  
}


/* Philosophy */
.vtx-philosophy {
  margin-top: 64px;
  background: linear-gradient(to right, #0f172a, #1e293b, #0f172a);
  color: #fff;
  padding: 40px 20px;
  border-radius: 20px;
  text-align: center;
}
.vtx-philosophy h3 {
  font-size: 28px;
  font-weight: 700;
  margin-bottom: 20px;
  color: #ad841f;
}
.vtx-philosophy p {
  color: #cbd5e1;
  max-width: 800px;
  margin: 0 auto 16px;
  line-height: 1.6;
}
.vtx-stats {
  display: flex;
  justify-content: center;
  gap: 40px;
  margin: 30px 0;
}
.vtx-stats strong {
  display: block;
  font-size: 26px;
  color: #ad841f;
}
.vtx-stats span {
  font-size: 14px;
  color: #cbd5e1;
}
.vtx-btn-large {
  background: #ad841f;
  color: #fff;
  border: none;
  padding: 14px 28px;
  border-radius: 8px;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
  transition: 0.3s;
}

.vtx-btn-large:hover {
  color: #fff;
}


.vtx-btn-large:hover {
  background: #1B365D;
}
