/*
Theme Name: Netgineers Theme
Author: Netgineers
Version: 1.0
*/

@font-face {
  font-display: block;
  font-family: tt_norms_pro;
  font-style: normal;
  font-weight: 400;
  src: url(fonts/tt_norms_pro_normal-webfont.woff2) format('woff2'),
    url(fonts/tt_norms_pro_normal-webfont.woff) format('woff');
}
@font-face {
  font-display: block;
  font-family: tt_norms_pro;
  font-style: normal;
  font-weight: 700;
  src: url(fonts/tt_norms_pro_bold-webfont.woff2) format('woff2'),
    url(fonts/tt_norms_pro_bold-webfont.woff) format('woff');
}
@font-face {
  font-display: block;
  font-family: PPGoshaSans;
  font-style: normal;
  font-weight: 700;
  src: url(fonts/PPGoshaSans-Bold.woff2) format('woff2'),
    url(fonts/PPGoshaSans-Bold.woff) format('woff');
}
@font-face {
  font-display: block;
  font-family: PPGoshaSans;
  font-style: normal;
  font-weight: 400;
  src: url(fonts/PPGoshaSans-Regular.woff2) format('woff2'),
    url(fonts/PPGoshaSans-Regular.woff) format('woff');
}

/* ========================================
   Page Content Styles
   ======================================== */

.page-content h2 {
  font-family: PPGoshaSans, ui-sans-serif, system-ui, sans-serif;
  font-size: 28px;
  line-height: 32px;
  margin-bottom: 1.25rem;
}

@media (min-width: 768px) {
  .page-content h2 {
    font-size: 40px;
    line-height: 46px;
  }
}

.page-content h3 {
  font-family: PPGoshaSans, ui-sans-serif, system-ui, sans-serif;
  font-size: 1.5rem;
  line-height: 2rem;
  margin-bottom: 1rem;
}

@media (min-width: 768px) {
  .page-content h3 {
    font-size: 1.875rem;
    line-height: 2.25rem;
  }
}

.page-content p {
  margin-bottom: 0.5rem;
}

@media (min-width: 768px) {
  .page-content p {
    font-size: 1.5rem;
    line-height: 2rem;
    margin-bottom: 1rem;
  }
}

.page-content a {
  border-bottom: 1px solid rgba(255, 255, 255, 0.2);
  transition: all 0.3s;
}

.page-content a:hover {
  cursor: pointer;
  border-bottom-color: rgba(254, 236, 174, 0.4);
  color: #feecae;
}

.page-content > *:not(:last-child) {
  margin-bottom: 2.75rem;
}

@media (min-width: 768px) {
  .page-content > *:not(:last-child) {
    margin-bottom: 3.75rem;
  }
}

.page-content ul,
.page-content ol {
  margin-left: 1.5rem;
  margin-bottom: 1rem;
}

@media (min-width: 768px) {
  .page-content ul,
  .page-content ol {
    margin-left: 2rem;
    margin-bottom: 1.5rem;
  }
}

.page-content ul {
  list-style-type: disc;
}

.page-content ol {
  list-style-type: decimal;
}

.page-content li {
  margin-bottom: 0.5rem;
}

@media (min-width: 768px) {
  .page-content li {
    font-size: 1.5rem;
    line-height: 2rem;
  }
}

.page-content strong {
  font-weight: 700;
}

.page-content em {
  font-style: italic;
}

.page-content blockquote {
  border-left: 4px solid #feecae;
  padding-left: 1.5rem;
  margin: 1.5rem 0;
  font-style: italic;
  opacity: 0.9;
}

/* ========================================
   Contact Form 7 Styles
   ======================================== */

.wpcf7-form {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.wpcf7-form p {
  margin: 0;
}

.wpcf7-form-control-wrap {
  position: relative;
  display: block;
  width: 100%;
}

.wpcf7-form input[type='text'],
.wpcf7-form input[type='email'],
.wpcf7-form input[type='tel'],
.wpcf7-form textarea {
  display: block;
  width: 100%;
  padding: 1.25rem 1rem 0.625rem;
  background-color: #0e284e;
  border-radius: 0.5rem;
  font-size: 1.125rem;
  color: white;
  border: none;
  outline: none;
  transition: all 0.3s;
}

@media (min-width: 768px) {
  .wpcf7-form input[type='text'],
  .wpcf7-form input[type='email'],
  .wpcf7-form input[type='tel'],
  .wpcf7-form textarea {
    padding: 1.75rem 1rem 1.25rem;
    font-size: 1.5rem;
  }
}

.wpcf7-form input:focus,
.wpcf7-form textarea:focus {
  background-color: #14376a;
}

.wpcf7-form textarea {
  min-height: 150px;
  resize: vertical;
}

.wpcf7-form .wpcf7-submit {
  display: inline-block;
  padding: 1rem 1.5rem;
  font-size: 1rem;
  border-radius: 0.5rem;
  color: #001839;
  background-color: #feecae;
  border: 1px solid #feecae;
  cursor: pointer;
  transition: all 0.3s;
}

@media (min-width: 1024px) {
  .wpcf7-form .wpcf7-submit {
    padding: 1.25rem 3.5rem;
    font-size: 1.5rem;
  }
}

.wpcf7-form .wpcf7-submit:hover {
  color: #feecae;
  background-color: transparent;
}

.wpcf7-form .wpcf7-submit:disabled {
  opacity: 0.5;
  pointer-events: none;
}

/* Validation messages */
.wpcf7-not-valid-tip {
  color: #ef4444;
  font-size: 0.875rem;
  margin-top: 0.25rem;
}

.wpcf7-response-output {
  margin-top: 1rem;
  padding: 1rem;
  border-radius: 0.5rem;
  text-align: center;
}

.wpcf7-mail-sent-ok {
  background-color: rgba(34, 197, 94, 0.1);
  color: #22c55e;
  border: 1px solid rgba(34, 197, 94, 0.3);
}

.wpcf7-validation-errors,
.wpcf7-mail-sent-ng {
  background-color: rgba(239, 68, 68, 0.1);
  color: #ef4444;
  border: 1px solid rgba(239, 68, 68, 0.3);
}

.wpcf7-spinner {
  margin-left: 1rem;
}

/* ========================================
   Project Solution Content Styles
   ======================================== */

.project-solution p {
  margin-bottom: 0.5rem;
}

/* ========================================
   FAQ Content Styles
   ======================================== */

.faq-content-body {
  font-size: 1.125rem; /* text-lg */
  line-height: 1.75rem;
}

.faq-content-body p {
  margin-bottom: 1.25rem; /* mb-5 */
}

@media (min-width: 768px) {
  .faq-content-body p {
    font-size: 1.5rem; /* md:text-2xl */
    line-height: 2rem;
    margin-bottom: 2rem; /* md:mb-8 */
  }
}

.faq-content-body ul {
  list-style-type: disc;
  padding-left: 19px;
}

.faq-content-body ul > li + li {
  margin-top: 0.5rem; /* space-y-2 */
}

@media (min-width: 768px) {
  .faq-content-body ul {
    font-size: 1.5rem; /* md:text-2xl */
    line-height: 2rem;
  }
}

@media (min-width: 1024px) {
  .faq-content-body ul {
    padding-left: 26px; /* lg:pl-[26px] */
  }
}

/* ========================================
   Base & Swiper Overrides (from tailwindcss.css)
   ======================================== */

html {
  scroll-behavior: smooth;
}

body {
  overflow-x: hidden;
  --tw-bg-opacity: 1;
  background-color: rgb(0 23 57 / var(--tw-bg-opacity));
  --tw-text-opacity: 1;
  color: rgb(255 255 255 / var(--tw-text-opacity));
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  transition-duration: 0.5s;
  transition-property: color, background-color, border-color,
    text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}

.swiper-pagination-bullets {
  align-items: center;
  display: flex;
  gap: 0.75rem;
}

.swiper-pagination-bullet {
  --swiper-pagination-bullet-size: 10px;
  --swiper-pagination-bullet-horizontal-gap: 0;
  --swiper-pagination-bullet-inactive-opacity: 0.4;
  --swiper-pagination-bullet-inactive-color: #d1d5db;
}

.swiper-pagination-bullet-active {
  --swiper-pagination-bullet-size: 12px;
  --tw-bg-opacity: 1 !important;
  background-color: rgb(254 236 174 / var(--tw-bg-opacity)) !important;
}

.swiper.swiper-projects,
.swiper.swiper-screenshots {
  margin-left: -1.25rem !important;
  margin-right: -1.25rem !important;
  padding-left: 1.25rem !important;
  padding-right: 1.25rem !important;
  position: static !important;
}

@media (min-width: 768px) {
  .swiper.swiper-projects,
  .swiper.swiper-screenshots {
    margin-left: -3rem !important;
    margin-right: -3rem !important;
    padding-left: 3rem !important;
    padding-right: 3rem !important;
  }
}

.swiper-projects .swiper-pagination {
  bottom: auto !important;
  left: auto !important;
  right: 0 !important;
  top: 2.25rem !important;
  width: -moz-fit-content !important;
  width: fit-content !important;
}

@media (min-width: 768px) {
  .swiper-projects .swiper-pagination {
    top: 3.5rem !important;
  }
}

.swiper.swiper-reviews {
  position: static !important;
}

.swiper-reviews .swiper-pagination {
  bottom: -3.75rem !important;
}

@media (min-width: 1024px) {
  .swiper-reviews .swiper-pagination {
    bottom: auto !important;
    top: -2rem !important;
  }
}

.swiper-screenshots .swiper-pagination {
  bottom: -3.75rem !important;
}

@media (min-width: 1024px) {
  .swiper-screenshots .swiper-pagination {
    bottom: -2.5rem !important;
  }
}

.scroll-hidden {
  -ms-overflow-style: none;
  scrollbar-width: none;
}

.scroll-hidden::-webkit-scrollbar {
  display: none;
}

/* ========================================
   Main Theme Styles (from main.css)
   ======================================== */

.resize-observer {
  background-color: transparent;
  border: none;
  opacity: 0;
}
.resize-observer,
.resize-observer object {
  display: block;
  height: 100%;
  left: 0;
  overflow: hidden;
  pointer-events: none;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}

/* Burger Icon */
.burger-icon {
  --burger-size: 30px;
  --burger-bar-size: 24px;
  height: var(--burger-size);
  width: var(--burger-size);
}
.burger-icon .bar {
  height: 2px;
  left: calc((var(--burger-size) - var(--burger-bar-size)) / 2);
  top: 50%;
  width: var(--burger-bar-size);
}
.burger-icon .bar:first-child {
  transform: translateY(-8px);
}
.burger-icon .bar:nth-child(2) {
  transform: translate(0);
}
.burger-icon .bar:nth-child(3) {
  transform: translateY(8px);
}
.burger-icon.open .bar:first-child {
  transform: rotate(45deg);
}
.burger-icon.open .bar:nth-child(2) {
  opacity: 0;
  transform: translate(-50px);
}
.burger-icon.open .bar:nth-child(3) {
  transform: rotate(-45deg);
}

/* Backgrounds */
.bg-header {
  background: linear-gradient(
    180deg,
    #001739,
    #001739 29.17%,
    #001739db 72.4%,
    #00173900
  );
}
.bg-container {
  height: 1700px;
  overflow: hidden;
  position: absolute;
  width: 100%;
  z-index: -10;
}
.bg-container.landing-middle {
  top: 2500px;
}
.bg-container.project {
  top: 1800px;
}
.bg-container.top {
  top: 200px;
}
.bg-container.error {
  height: 100vh;
}
.bg {
  background: linear-gradient(
    rgba(41, 82, 138, 0) 0.5%,
    #29528a 60.13%,
    #29528a 68.74%,
    rgba(41, 82, 138, 0)
  );
  height: 1200px;
  left: -30%;
  position: absolute;
  top: 250px;
  width: 160%;
  z-index: -10;
}
.bg-container.error .bg,
.bg-container.landing .bg,
.bg-container.project .bg,
.bg-container.top .bg {
  transform: rotate(-6deg);
}
.bg-container.landing-middle .bg {
  transform: rotate(6deg);
}
@media (min-width: 768px) {
  .bg-container.top {
    top: -1050px;
  }
  .bg-container.top .bg {
    transform: rotate(170deg);
  }
}

.gradient-sidebar {
  background: linear-gradient(-6deg, rgba(41, 82, 138, 0.8), transparent 80%);
}

.text-outline {
  -webkit-text-stroke: 2px #feecae;
  -webkit-text-fill-color: transparent;
}
@media (min-width: 768px) {
  .text-outline {
    font-size: 360px;
    -webkit-text-stroke: 3px #feecae;
  }
}

.icon {
  display: inline-block;
  vertical-align: middle;
}

.mvp-works a {
  text-decoration-color: #feedaeb3;
  text-decoration-line: underline;
  text-decoration-style: dashed;
  text-decoration-thickness: from-font;
  text-underline-offset: 8px;
  transition-duration: 0.5s;
  transition-property: color, background-color, border-color,
    text-decoration-color, fill, stroke;
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
}
@media (hover: hover) and (pointer: fine) {
  .mvp-works a:hover {
    --tw-text-opacity: 1;
    color: rgb(254 236 174 / var(--tw-text-opacity));
    text-decoration-color: #feecae;
  }
}

.mvp-steps {
  scrollbar-width: none;
}
.mvp-steps::-webkit-scrollbar {
  display: none;
}

/* Medium Zoom */
.medium-zoom-image--opened,
.medium-zoom-overlay {
  z-index: 999;
}
