/* Dana font family from assets/fonts */
@font-face {
  font-family: "Dana";
  src: url("assets/fonts/DanaFaNum-Light.ttf") format("truetype");
  font-weight: 300;
  font-style: normal;
}

@font-face {
  font-family: "Dana";
  src: url("assets/fonts/DanaFaNum-Regular.ttf") format("truetype");
  font-weight: 400;
  font-style: normal;
}

@font-face {
  font-family: "Dana";
  src: url("assets/fonts/DanaFaNum-DemiBold.ttf") format("truetype");
  font-weight: 600;
  font-style: normal;
}

@font-face {
  font-family: "Dana";
  src: url("assets/fonts/DanaFaNum-Bold.ttf") format("truetype");
  font-weight: 700;
  font-style: normal;
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
  font-family: "Dana", "Poppins", sans-serif;
  cursor: default;
}

body {
  background: #00102f;
  overflow-x: hidden;
  margin: 0;
  height: 100%;
  overflow-y: scroll;
}

nav {
  height: 100px;
  width: 100%;
  display: flex;
  align-items: center;
  padding: 28px;
  position: fixed;
  top: 0;
  z-index: 9;
  max-width: 1440px;
  left: 50%;
  justify-content: space-between;
  transform: translate(-50%);
}

.header_logo {
  opacity: 0;
  transition: opacity 0.3s ease;
}

nav.scrolled .header_logo {
  opacity: 1;
}

.main {
  margin-top: 100vh;
  scroll-snap-type: y mandatory;
  scroll-behavior: smooth;
  height: 100vh;
  overflow-y: hidden;
  /* نیازمند اسکرول‌پذیری */
  scrollbar-width: none;
  /* Firefox */
  -ms-overflow-style: none;
  /* IE/Edge */
}

.main.reached_to_main {
  overflow: scroll;
}

section {
  z-index: 2;
  position: relative;
}

.hide {
  display: none;
}

.link {
  text-decoration: unset;
}

.icon {
  width: 32px;
  height: 32px;
  background: white;
  border-radius: 50%;
  display: flex;
  justify-content: center;
  align-items: center;
  cursor: pointer;
  transition: all 0.3s ease;
}

.call_btn {
  height: 40px;
  border-radius: 8px;
  border: 1px solid #2f5486;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: white;
  font-size: 16px;
  cursor: pointer;
  padding: 12px 18px;
}

.hero_wrapper {
  position: fixed;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.main > section,
.main > footer {
  scroll-snap-align: start;
  scroll-snap-stop: always;
  transition: opacity 0.6s ease-out, transform 0.6s ease-out;
  will-change: opacity, transform;
}

.faded-out {
  opacity: 0;
}

.hero_section {
  display: flex;
  flex-direction: column;
  gap: 16px;
  align-items: center;
  justify-content: center;
  color: white;
  height: 80vh;
  opacity: 1;
  transition: all 0.3s ease;
}

.hero_section.hide {
  opacity: 0;
}

.cta_container,
.logo_container {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.logo_container {
  gap: 24px;
}

.cta_container {
  gap: 48px;
}

.main_title {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 24px;
}

.main_title .devider {
  height: 126px;
  width: 1px;
  background: linear-gradient(to bottom, #2f548600, #2f5486, #2f548600);
}

.changable_titles {
  position: relative;
  overflow: hidden;
  color: #9fbfee;
  font-size: 60px;
  font-weight: 700;
  line-height: 1.2;
}

.changable_titles_2 {
  position: relative;
  overflow: hidden;
  color: #9fbfee;
  font-size: 48px;
  font-weight: 300;
  line-height: 1.2;
}

.changable_titles-inner {
  display: flex;
  flex-direction: column;
  transition: transform 0.5s ease;
}

.changable_titles-inner span {
  display: flex;
  align-items: center;
  white-space: nowrap;
}

.hero_section h1 {
  color: white;
  font-size: 60px;
  font-weight: 700;
}

.second_titles {
  font-size: 48px;
  font-weight: 300;
  position: relative;
  overflow: hidden;
}

.second_titles .slide {
  display: flex;
  align-items: center;
  gap: 12px;
}

.slider-inner {
  display: flex;
  flex-direction: column;
  transition: transform 0.5s ease;
  text-align: center;
  align-items: center;
}

.bg_container {
  position: fixed;
  top: 0;
  left: 50%;
  transform: translate(-50%);
  width: 100%;
  height: 100%;
}

.overlay {
  width: 100vw;
  height: 100vh;
  position: fixed;
  background: #030e27a8;
}

.about_section {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: start;
  gap: 24px;
  align-items: center;
  padding-right: 120px;
  position: sticky;
  top: 0;
  transition: all 0.5s ease;
}

@media (min-width: 1600px) {
  .about_section {
    justify-content: center;
    padding-right: 0;
  }
}

.about_section:has(.forth_line:not(.hide)) {
  gap: 34px;
}

.about_section_right {
  position: relative;
  width: 506px;
  margin-top: 20px;
  z-index: 3;
}

.about_section_right_img {
  max-width: 326px;
}

.about_section_right span {
  font-size: 18px;
  font-weight: 700;
  color: #a1a1a1;
  position: absolute;
  transition: all 0.3s ease;
  width: 232px;
  cursor: pointer;
}

.about_section_right span.center_about_title {
  right: 330px;
  top: 176px;
  font-size: 24px;
  color: white;
}

.about_section_right span.center_about_title.move_to_top {
  animation: form_center_to_top 0.4s ease forwards;
}

.about_section_right span.center_about_title.move_to_bottom {
  animation: form_center_to_bottom 0.4s ease forwards;
}

.about_section_right span.top_about_title {
  top: 46px;
  right: 80px;
  display: flex;
  align-items: center;
  gap: 14px;
}

.about_section_right span.top_about_title.move_to_center_from_top {
  animation: form_top_to_center_move 0.4s ease forwards;
}

.about_section_right span.bottom_about_title {
  top: 311px;
  right: 56px;
  display: flex;
  align-items: center;
  gap: 12px;
}

.about_section_right span.bottom_about_title.move_to_center_from_bottom {
  animation: form_bottom_to_center_move 0.4s ease forwards;
}

@keyframes form_center_to_top {
  0% {
    top: 176px;
    right: 330px;
  }

  100% {
    top: 44px;
    right: 102px;
    font-size: 18px;
    color: #a1a1a1;
  }
}

@keyframes form_center_to_bottom {
  0% {
    top: 176px;
    right: 330px;
  }

  100% {
    top: 314px;
    right: 80px;
    font-size: 18px;
    color: #a1a1a1;
  }
}

@keyframes form_top_to_center_move {
  0% {
    top: 44px;
    right: 102px;
  }

  100% {
    top: 176px;
    right: 330px;
    font-size: 24px;
    color: white;
  }
}

@keyframes form_bottom_to_center_move {
  0% {
    top: 314px;
    right: 80px;
  }

  100% {
    top: 176px;
    right: 330px;
    font-size: 24px;
    color: white;
  }
}

.about_section_left {
  display: flex;
  gap: 8px;
  align-items: center;
}

.lines-svg-wrapper {
  position: relative;
  width: 221px;
  height: 470px;
  flex-shrink: 0;
  transition: width 1s ease;
}

.about_section_left.pressed {
  gap: 0;
}

.about_section_left.pressed .lines-svg-wrapper {
  width: 85px;
}

.about_section_describe_container {
  display: none;
  background: #111b3385;
  border: 1px solid #162955;
  width: 367px;
  color: #e6e6e6;
  font-size: 16px;
  font-weight: 400;
  border-radius: 12px 0 0 12px;
  padding: 12px;
  opacity: 0;
  transform: translateX(-24px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.about_section_left.first .about_section_describe_container {
  height: 424px;
}

.about_section_left.second .about_section_describe_container {
  height: 440px;
}

.about_section_left.third .about_section_describe_container {
  height: 430px;
}

.about_section_describe_container.pressed {
  opacity: 1;
  transform: translateX(0);
}

.about_section_describe_container img {
  cursor: pointer;
}

.about_section_describe_container p {
  text-align: justify;
  width: 340px;
}

.lines-default,
.lines-pressed {
  position: absolute;
  left: 0;
  top: 0;
  opacity: 1;
  transition: opacity 0.4s ease-in-out;
}

.about_section_left.pressed .lines-default {
  opacity: 0;
  pointer-events: none;
}

.about_section_left:not(:has(.pressed)) .lines-pressed {
  opacity: 0;
  pointer-events: none;
}

/* Visible states: ensure smooth fade-in when toggling */
.about_section_left.pressed .lines-pressed {
  opacity: 1;
}

.about_section_left:not(:has(.pressed)) .lines-default {
  opacity: 1;
}

.lines .runner {
  fill: none;
  stroke: #74c5ff;
  stroke-width: 2;
  stroke-linecap: round;

  /* glowing segment: 20 visible, 80 hidden */
  stroke-dasharray: 20 100;
  stroke-dashoffset: 120;
  animation: move 2s linear infinite;
}

@keyframes move {
  from {
    stroke-dashoffset: 120;
  }

  to {
    stroke-dashoffset: 0;
  }
}

.light {
  color: linear-gradient(to left, red, white);
}

.about_section_left_titles_wrapper {
  display: flex;
  flex-direction: column;
  align-items: start;
}

.about_section_left.pressed .about_section_left_titles_wrapper {
  padding-right: 8px;
}

.about_section_left.first .about_section_left_titles_wrapper {
  gap: 56px;
}

.about_section_left.second .about_section_left_titles_wrapper {
  gap: 40px;
}

.about_section_left.third .about_section_left_titles_wrapper {
  gap: 90px;
}

.about_section_left_title_container {
  display: flex;
  align-items: center;
  gap: 8px;
  cursor: pointer;
  width: 100%;
}

.about_section_left_title {
  display: flex;
  align-items: center;
  gap: 6px;
  color: white;
  font-size: 14px;
  font-weight: 300;
  background: #ffffff0d;
  border-top: 1px solid #162955;
  border-bottom: 1px solid #162955;
  height: 40px;
  padding: 0 8px;
  white-space: nowrap;
  transition: all 1s ease;
  justify-content: space-between;
  width: 192px;
}

.about_section_left_title_container.pressed .about_section_left_title {
  padding: 0 40px 0 24px;
  width: 206px;
}

.about_section_left_title_container.pressed .about_section_left_title img {
  display: none;
}

.map_section {
  display: flex;
  align-items: center;
  gap: 54px;
  justify-content: center;
  position: sticky;
  top: 0;
  transition: all 0.5s ease;
  height: 100vh;
}

.map_section_map_container {
  position: relative;
}

.info_section {
  display: flex;
  flex-direction: column;
  align-items: start;
  gap: 24px;
  padding: 0 30px;
  border-right: 1px solid #1f2941;
  border-left: 1px solid #1f2941;
  width: 450px;
  flex-shrink: 0;
}

.info_section span {
  font-size: 32px;
  font-weight: 700;
  color: #e6e6e6;
}

.info_section p {
  font-size: 16px;
  font-weight: 400;
  text-align: justify;
  color: #8d8d8d;
}

.map_section_info_container {
  position: relative;
  width: 500px;
  /* adjust width */
  /* height: 380px; */
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.info_stick_to {
  display: flex;
  width: 3500px;
  transition: transform 0.5s ease-in-out;
  gap: 75px;
  padding: 0 45px;
}

/* Arrows */
.map_section_info_container .arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  font-size: 2rem;
  background: transparent;
  color: #fff;
  border: none;
  padding: 0.5rem 1rem;
  cursor: pointer;
  z-index: 10;
}

.map_section_info_container .prev {
  right: -16px;
}

.map_section_info_container .next {
  left: -16px;
}

/* Dots */
.map_section_info_container .dots {
  width: 100%;
  text-align: center;
}

.map_section_info_container .dot {
  height: 8px;
  width: 8px;
  margin: 0 2px;
  display: inline-block;
  background: #bbb;
  border-radius: 50%;
  cursor: pointer;
}

.map_section_info_container .dot.active {
  background: #717171;
}

.circle_pin {
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  position: absolute;
  transition: opacity 0.6s ease;
}

.circle_pin_center {
  display: block;
  width: 8px;
  height: 8px;
  background: #c7e7eb;
  border-radius: 100%;
  position: absolute;
}

.circle_pin_blur {
  display: block;
  width: 8px;
  height: 8px;
  background: #c7e7eb;
  border-radius: 100%;
  position: absolute;
  box-shadow: 0 0 10px 4px #c7e7eb;

  animation: pinWink 4s infinite ease-in-out;
}

@keyframes pinWink {
  0%,
  92%,
  100% {
    box-shadow: 0 0 10px 4px #c7e7eb;
    transform: scale(1);
  }

  95% {
    box-shadow: 0 0 16px 6px #c7e7eb;
    transform: scale(1);
  }
}

.circle_pin_about_section {
  position: relative;
  width: 8px;
  height: 8px;
}

.circle_pin_center_about_section {
  display: block;
  width: 8px !important;
  height: 8px;
  background: #7699d9;
  border-radius: 100%;
  position: absolute;
}

.circle_pin_blur_about_section {
  display: block;
  width: 8px !important;
  height: 8px;
  background: #7699d9;
  border-radius: 100%;
  position: absolute;
  box-shadow: 0 0 10px 4px #7699d9;
}

.top_about_title .circle_pin_blur_about_section {
  animation: blueWink 2s infinite ease-in-out;
}

.bottom_about_title .circle_pin_blur_about_section {
  animation: blueWink 2s infinite ease-in-out;
  animation-delay: 0.5s;
}

@keyframes blueWink {
  0%,
  92%,
  100% {
    box-shadow: 0 0 10px 4px #7699d9;
    transform: scale(1.2);
  }

  95% {
    box-shadow: 0 0 16px 6px #c7e7eb;
    transform: scale(1.2);
  }
}

footer {
  height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 2;
  position: relative;
}

.footer_container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 50px;
}

.footer_info_container {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 30px;
}

.address {
  font-size: 18px;
  font-weight: 400;
  color: white;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.phone {
  font-size: 18px;
  font-weight: 600;
  color: white;
}

.footer_links_wrapper {
  display: flex;
  flex-direction: column;
  align-items: center;
}

.footer_links_wrapper > .devider {
  width: 100%;
  height: 1px;
  background: linear-gradient(to left, #2f548500, #2f5485, #2f548500);
}

.footer_links {
  display: flex;
  color: #e6e6e6;
  font-size: 14px;
  font-weight: 700;
  align-items: center;
  justify-content: center;
  gap: 30px;
  padding: 16px 0;
}

.footer_links .devider {
  height: 24px;
  width: 1px;
  background: #2f5485;
}

/* login modale */

.login_section {
  width: 100vw;
  height: 80vh;
  display: flex;
  justify-content: center;
  align-items: center;
}

.login_wrapper {
  background: #000c2642;
  border-radius: 24px;
  border: 2px solid #0c213c;
  display: flex;
  align-items: center;
  flex-direction: column;
  gap: 24px;
  padding: 32px 32px 56px;
  backdrop-filter: blur(4px);
}

.login_wrapper img {
  filter: invert(1);
}

.message_login {
  font-size: 16px;
  font-weight: 400;
  color: white;
  max-width: 200px;
  text-align: center;
  padding-bottom: 20px;
}

.number_input {
  height: 40px;
  border-radius: 10px;
  border: 1px solid #2a3f5b;
  text-align: center;
  font-size: 16px;
  font-weight: 400;
  width: 256px;
  letter-spacing: 4px;
  caret-color: #ffffff00;
  background: transparent;
  color: #ffffff85;
  display: none;
}

.send_btn {
  background: #021029;
  border-radius: 10px;
  font-size: 16px;
  font-weight: 400;
  color: white;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  width: 256px;
}

.code_input {
  height: 40px;
  border-radius: 10px;
  border: 1px solid #2a3f5b;
  text-align: center;
  font-size: 16px;
  font-weight: 400;
  width: 256px;
  letter-spacing: 4px;
  caret-color: #ffffff00;
  background: transparent;
  color: #ffffff85;
  display: none;
}

.resend_code {
  color: #939393;
  font-size: 12px;
  position: absolute;
  bottom: 30px;
  display: none;
  cursor: pointer;
  text-decoration: underline;
}

.number_input.show,
.code_input.show,
.resend_code.show {
  display: block;
}

.number_input.error,
.code_input.error {
  border: 1px solid #ce2323;
}

/* From Uiverse.io by Nawsome */
/*bg*/
/*txt*/
/*success*/
.buttons {
  display: flex;
  justify-content: space-around;
  top: 20px;
  left: 20px;
}

.buttons button {
  background-color: #ffffff0d;
  margin: 20px;
  position: relative;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 3px;
  width: 214px;
  height: 50px;
  border-radius: 8px;
  border: 1px solid #2f5486;
  background: #ffffff0d;
  color: white;
  font-size: 16px;
  cursor: pointer;
  font-weight: 600;
  gap: 12px;
}

.buttons button:before,
.buttons button:after {
  content: "";
  position: absolute;
  width: 0;
  height: 2px;
  background-color: #74c5ff;
  transition: all 0.3s cubic-bezier(0.35, 0.1, 0.25, 1);
}

.buttons button:before {
  right: 0;
  top: 0;
  transition: all 0.5s cubic-bezier(0.35, 0.1, 0.25, 1);
}

.buttons button:after {
  left: 0;
  bottom: 0;
}

.buttons button span {
  width: 100%;
  height: 100%;
  position: absolute;
  left: 0;
  top: 0;
  margin: 0;
  padding: 0;
  z-index: 1;
  cursor: pointer;
}

.buttons button span:before,
.buttons button span:after {
  content: "";
  position: absolute;
  width: 2px;
  height: 0;
  background-color: #74c5ff;
  transition: all 0.3s cubic-bezier(0.35, 0.1, 0.25, 1);
}

.buttons button span:before {
  right: 0;
  top: 0;
  transition: all 0.5s cubic-bezier(0.35, 0.1, 0.25, 1);
}

.buttons button span:after {
  left: 0;
  bottom: 0;
}

.buttons button:hover:before,
.buttons button:hover:after {
  width: 100%;
}

.buttons button:hover span {
  z-index: 1;
}

.buttons button:hover span:before,
.buttons button:hover span:after {
  height: 100%;
}

.buttons button.start {
  background-color: #74c5ff;
  box-shadow: 0px 5px 10px -10px rgba(0, 0, 0, 0.2);
  transition: all 0.2s ease;
}

.buttons button.start:hover:before,
.buttons button.start:hover:after {
  display: none;
}

.buttons button.start:hover span {
  display: none;
}

.buttons button:active {
  outline: none;
  border: none;
}

.buttons button:focus {
  outline: 0;
}

.fade {
  opacity: 0;
}

.numbers_footer {
  display: flex;
  align-items: center;
  gap: 32px;
}

.footer_info_container .mobile {
  display: none;
  text-align: center;
}

/* responsive */

@media (max-width: 1440px) {
  .hero_section h1,
  .changable_titles {
    font-size: 48px;
  }

  .second_titles,
  .changable_titles_2 {
    font-size: 42px;
  }
}

@media (max-width: 991px) {
  nav {
    padding: 1rem;
    max-width: 100%;
  }

  .buttons .btn {
    margin: 0;
    width: auto;
    font-size: 0;
    padding: 8px 12px;
    gap: 0;
  }

  .header_logo {
    opacity: 1;
  }

  .hero_section h1,
  .changable_titles {
    font-size: 20px;
  }

  .second_titles,
  .changable_titles_2 {
    font-size: 16px;
  }

  .hero_wrapper {
    width: 300px;
    max-width: 80%;
  }

  .main_title .devider {
    height: 70px;
  }

  .bg_container video {
    height: 100vh;
    width: 100vw;
    object-fit: cover;
  }

  .hero_section .btn,
  .footer_login_btn .btn {
    margin: 20px;
    width: 180px;
    font-size: 16px;
    gap: 12px;
  }

  .changable_titles {
    height: 24px !important;
  }

  .about_section {
    padding: 1rem;
  }

  .about_section_right {
    display: none;
  }

  .about_section_left {
    position: relative;
  }

  .lines-svg-wrapper {
    display: none;
  }

  .about_section_describe_container {
    position: absolute;
    top: 0px;
    right: 0rem;
    width: calc(-2rem + 100vw);
    /* overflow: hidden; */
    background: #111b33;
  }

  .about_section_describe_container p {
    width: 100%;
  }

  .map_section_map_container {
    display: none;
  }

  .info_section {
    padding: 0 8px;
  }

  .info_section p,
  .info_section span {
    width: 72%;
  }

  .info_section span {
    font-size: 22px;
  }

  .footer_logo {
    display: none;
  }

  .footer_container {
    padding: 0 1rem;
  }

  .footer_info_container .deskTop {
    display: none;
  }

  .footer_info_container .mobile {
    display: block;
  }

  .footer_links {
    gap: 16px;
    flex-direction: column;
  }

  .footer_links .devider {
    height: 1px;
    width: 40px;
  }

  .second_titles .slide {
    gap: 6px;
  }
}
