
:root {
  --primary: #ef233c !important;
  /* --primary: #ef233c; */
  --secondry: #2b2d42 !important;
  --third: #edf2f4 !important;
}
@font-face {
  font-family: optika-bold;
  src: url(font/optika/Optika-Black.woff);
}

@font-face {
  font-family: optika-regular;
  src: url(font/optika/Optika-Regular.woff);
}
@font-face {
  font-family: optika-black;
  src: url(font/optika/Optika-Black.woff);
}
@font-face {
  font-family: optika-semi;
  src: url(font/optika/Optika-SemiBold.woff);
}
@font-face {
  font-family: optika-medium;
  src: url(font/optika/Optika-Medium.woff);
}

* {
  margin: 0;
  padding: 0;
  box-sizing: border-box;
}

body {
  font-family: "optika-regular" !important;
  background: #f3f2ef;
  color: #000000e6;
  line-height: 1.6;
}

.navbar {
  background: #fff;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.08);
  padding: 12px 0;
}

.navbar-brand img {
  height: 40px;
}

.main-container {
  max-width: 1200px;
  margin: 24px auto;
  padding: 0 24px;
}

.job-header {
  background: #fff;
  border-radius: 10px;
  padding: 24px;
  margin-bottom: 24px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.08);
}

.company-info {
  display: flex;
  align-items: start;
  margin-bottom: 16px;
  flex-direction: column;
}

.company-logo {
  /* width: 72px; */
  height: 72px;
  border-radius: 10px;
  margin-right: 16px;
  object-fit: cover;
  border: 1px solid #e0e0e0;
}

.company-details h1 {
  font-size: 24px;
  font-weight: 600;
  color: #000000e6;
  margin: 10px 0px 5px 0;
}

.company-details {
  align-items: start;
  display: flex;
  flex-direction: column;
  justify-content: start;
}

.company-name {
  color: #0a66c2;
  font-weight: 600;
  font-size: 16px;
  margin-bottom: 5px;
}

.job-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 16px;
  color: #00000099;
  font-size: 14px;
}

.job-meta span {
  display: flex;
  align-items: center;
}

.job-meta i {
  margin-right: 6px;
  width: 16px;
}

.recruiting-badge {
  background: #057642;
  color: white;
  padding: 4px 12px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: 600;
  display: flex;
  justify-content: center;
  align-items: center;
}

.content-grid {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 24px;
}

.job-content {
  background: #fff;
  border-radius: 10px;
  padding: 24px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.08);
}

.job-sidebar {
  background: #fff;
  border-radius: 10px;
  padding: 24px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.08);
  height: fit-content;
  position: sticky;
  top: 90px;
}

.section-title {
  font-size: 25px;
  font-weight: 600;
  margin: 5px 0;
  color: #000000e6;
}

.job-description {
  margin-bottom: 24px;
}

.job-description p {
  margin-bottom: 12px;
}

.requirements-list {
  list-style: none;
  padding: 0;
}

.requirements-list li {
  padding: 8px 0;
  border-bottom: 1px solid #e0e0e0;
  display: flex;
  align-items: flex-start;
}

.requirements-list li:last-child {
  border-bottom: none;
}

.requirements-list i {
  color: #057642;
  margin-right: 12px;
  margin-top: 2px;
}

.apply-button {
  background: var(--primary);
  color: white;
  border: none;
  padding: 12px 24px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.2s;
  width: 100%;
  margin-bottom: 16px;
}

.apply-button:hover {
  background: var(--secondry);
  transform: translateY(-1px);
}

.save-button {
  background: transparent;
  color: #0a66c2;
  border: 1px solid #0a66c2;
  padding: 12px 24px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.2s;
  width: 100%;
}

.save-button:hover {
  background: #0a66c2;
  color: white;
}

.job-details {
  margin-bottom: 24px;
}

.detail-item {
  display: flex;
  justify-content: space-between;
  padding: 12px 0;
  border-bottom: 1px solid #e0e0e0;
}

.detail-item:last-child {
  border-bottom: none;
}

.detail-label {
  font-weight: 500;
  color: #00000099;
  font-size: 13px;
}

.detail-value {
  font-weight: 600;
  color: #000000e6;
  text-align: end;
  font-size: 14px;

}

.application-form {
  background: #fff;
  border-radius: 10px;
  padding: 24px;
  margin-top: 24px;
  box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.08), 0 2px 4px rgba(0, 0, 0, 0.08);
}

.form-group {
  margin-bottom: 20px;
}

.form-label {
  display: block;
  margin-bottom: 8px;
  font-weight: 500;
  color: #000000e6;
}
.red{
  color: red;
}

.form-control {
  width: 100%;
  /* padding: 12px 16px; */
  border: 1px solid #000;
  border-radius: 10px;
  font-size: 14px;
  transition: border-color 0.2s;
  border-radius: 10px;
  height: calc(2em + 0.75rem + 2px) !important;
}

.form-control:focus {
  outline: none;
  border-color: #0a66c2;
  box-shadow: 0 0 0 2px rgba(10, 102, 194, 0.1);
}

.file-upload {
  border: 2px dashed #ccc;
  border-radius: 10px;
  padding: 24px;
  text-align: center;
  cursor: pointer;
  transition: all 0.2s;
}

.file-upload:hover {
  border-color: #0a66c2;
  background: #f8f9fa;
}

.file-upload.dragover {
  border-color: #0a66c2;
  background: #e3f2fd;
}

.submit-btn {
  background: var(--primary);
  color: white;
  border: none;
  padding: 16px 32px;
  border-radius: 10px;
  font-weight: 600;
  font-size: 16px;
  cursor: pointer;
  transition: all 0.2s;
}

.submit-btn:hover {
  background: var(--secondry);
}

@media (max-width: 768px) {
  .content-grid {
    grid-template-columns: 1fr;
  }

  .main-container {
    padding: 0 16px;
  }

  .company-info {
    flex-direction: column;
    /* text-align: center; */
  }

  .company-logo {
    margin-right: 0;
    margin-bottom: 16px;
  }
}

.job-description ol,
.job-description dl,
.job-description ul {
  margin-left: 30px;
}
.is-invalid {
  border-color: red;
}

.is-valid {
  border-color: green;
}

label.error {
  color: red;
  font-size: 13px;
  margin-top: 4px;
}

.job-card {
  border: 1px solid #e0e0e0;
  border-radius: 10px;
  padding: 25px;
  margin-bottom: 30px;
  background: #fff;
  box-shadow: 0 5px 15px rgba(0, 0, 0, 0.1);
  transition: all 0.3s ease;
  position: relative;
}

.job-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 10px 25px rgba(0, 0, 0, 0.15);
}

/* .job-card.recruiting::before {
            content: "RECRUITING";
            position: absolute;
            top: -16px;
            right: 125px;
            background: #ff6b35;
            color: white;
            padding: 5px 15px;
            border-radius: 10px;
            font-size: 12px;
            font-weight: bold;
            animation: pulse 2s infinite;
        } */

@keyframes pulse {
  0% {
    transform: scale(1);
  }

  50% {
    transform: scale(1.05);
  }

  100% {
    transform: scale(1);
  }
}

.job-title {
  color: #2c3e50;
  font-size: 24px;
  font-weight: 600;
  margin-bottom: 15px;
}

.job-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 15px;
  margin: 10px 0px;
}

.job-meta-item {
  display: flex;
  align-items: center;
  color: #666;
  font-size: 14px;
}

.job-meta-item i {
  margin-right: 8px;
  color: var(--primary);
  width: 16px;
}

.job-description {
  color: #555;
  line-height: 1.6;
  margin-bottom: 20px;
}

.roles-section {
  background: #f8f9fa;
  padding: 15px;
  border-radius: 10px;
  margin-bottom: 20px;
}

.roles-section h6 {
  color: #2c3e50;
  font-weight: 600;
  justify-content: start;
  margin-left: 5px;
  margin-bottom: 10px;
}

.apply-btn {
  background: linear-gradient(45deg, #fdbe33, #ffa500);
  border: none;
  color: white;
  padding: 12px 30px;
  border-radius: 10px;
  font-weight: 600;
  text-decoration: none;
  display: inline-block;
  transition: all 0.3s ease;
}

.apply-btn:hover {
  background: linear-gradient(45deg, #ffa500, #fdbe33);
  color: white;
  transform: translateY(-2px);
  box-shadow: 0 5px 15px rgba(253, 190, 51, 0.4);
}

.openings-count {
  background: #e74c3c;
  color: white;
  padding: 5px 12px;
  border-radius: 10px;
  font-size: 12px;
  font-weight: bold;
  position: absolute;
  top: -16px;
  right: 15px;
}

.company-logo {
  /* width: 180px; */
  height: 60px;
  /* border-radius: 50%; */
  object-fit: cover;
  /* border: 3px solid var(--primary); */
  /* position: absolute; */
  top: -30px;
  left: 25px;
  background: white;
}

.stats-section {
  background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
  color: white;
  padding: 40px 0;
  margin-bottom: 50px;
}

.stat-item {
  text-align: center;
  padding: 20px;
}

.stat-number {
  font-size: 48px;
  font-weight: bold;
  display: block;
}

.stat-label {
  font-size: 16px;
  opacity: 0.9;
}
.is-invalid {
  border-color: #dc3545;
}

.is-valid {
  border-color: #28a745;
}

label.error {
  color: #dc3545;
  font-size: 0.9em;
  margin-top: 5px;
  display: block;
}

/* Add this CSS rule */

/* Optional styling for fullscreen mode */
:fullscreen::backdrop {
  background-color: rgba(0, 0, 0, 0.9);
  /* Dim the background */
}

canvas {
  display: block;
  width: 100%;
  height: 100%;
  image-rendering: -webkit-optimize-contrast;
  image-rendering: crisp-edges;
}

body {
  /* overflow: hidden; */
  margin: 0px;
}

.arrow-button {
  position: absolute;
  bottom: 60px;
  right: 0;
  transform: translateX(-50%);
  cursor: pointer;
  width: 35px;
  padding: 5px;
  filter: invert(1);
  background-color: #ffffffa3;
  border-radius: 10px;
}

.visible {
  display: none !important;
}

.arrow-button:hover {
  background-color: #fff;
  border-radius: 10px;
}

.image2 {
  position: absolute;
  bottom: 0;
  background: black;
  width: 100%;

}

#container {
  width: 100%;
  height: 100%;
  overflow: hidden;
  cursor: grab;
  transition: all 0.3s ease;
  position: relative;

}

canvas {
  transition: all 0.5s;
  width: 100% !important;

  transition: all 0.3s ease;
}

.grabbing {
  cursor: grabbing !important;
  transition: all 0.3s ease;
}


#sidebar {
  position: fixed;
  top: 0;
  left: 0;
  width: 120px;
  height: 100%;
  background-color: #1a1a1a;
  overflow-y: auto;
  /* padding: 10px 5px; */
  transition: all 0.3s ease-in-out;
  z-index: 999;
}

#sidebar.hidden {
  transform: translateX(-100%);
}

/* Toggle (hamburger) button */
.menu-toggle {
  position: fixed;
  top: 20px;
  left: 15px;
  font-size: 24px;
  color: #fff;
  background: #333;
  padding: 8px 10px;
  border-radius: 10px;
  cursor: pointer;
  z-index: 1000;
}

/* Thumbnail container */
.image-container {
  display: flex;
  flex-direction: column;
  align-items: center;
}

/* Individual thumb + label */
.thumb-item {
  display: flex;
  flex-direction: column;
  align-items: center;
  margin-bottom: 15px;
  text-align: center;
}

.thumb-item img {
  width: 80px;
  height: auto;
  border-radius: 10px;
  border: 2px solid transparent;
  cursor: pointer;
  transition: 0.3s;
}

.thumb-item img:hover,
.thumb-item img.active {
  border-color: #FFD700;
  transform: scale(1.05);
}

.thumb-item span {
  color: #fff;
  font-size: 12px;
  margin-top: 5px;
  max-width: 80px;
  word-wrap: break-word;
}

/* Main content wrapper */
#main-content,
#toggleButton {
  margin-left: 120px;
  transition: margin-left 0.3s ease-in-out;
}

/* When sidebar is hidden, shift main content left */
#main-content.shifted,
#toggleButton.shifted {
  margin-left: 0;
}

/* Already provided */
#sidebar {
  transition: transform 0.3s ease-in-out;
}

#sidebar.hidden {
  transform: translateX(-120px);
}

#evrbbthlsctr {
  position: absolute;
  bottom: 0;
  left: 50%;
  transform: translateX(-50%);
  padding: 0px;
  display: flex;
  justify-content: center;
  align-items: center;
  flex-direction: column;
  transition: all 0.3s ease;
}

@media screen and (min-width: 320px) and (max-width: 767px) {

  #pauseButton,
  #fullscreenButton {
    width: 65px;
    font-size: 12px;
    padding: 5px;
  }

  #fullscreenButton {
    right: 75px;
  }

  #pauseButton {
    right: 10px;
  }

  /*#container{
        height: 50vh;
    }*/

}

#pauseButton:hover,
#fullscreenButton:hover {
  background-color: #f0f0f0;
  color: #000;
}

#fullscreenButton {
  right: 140px;
}

#pauseButton {
  right: 50px;
}

#pauseButton,
#fullscreenButton {
  position: absolute;
  top: 10px;
  z-index: 10;
  padding: 10px 20px;
  background-color: #fff;
  border: none;
  cursor: pointer;
  transition: all 0.3s ease;
  font-size: 12px;
  width: 87px;
  display: flex;
  justify-content: center;
}

/* Styles for CSS2DObject labels */
.hotspot-label {
  background-color: rgba(0, 0, 0, 0.7);
  color: rgb(255, 0, 0);
  padding: 8px 15px;
  border-radius: 10px;
  font-size: 50px;
  white-space: nowrap;
  pointer-events: none;
  /* Crucial: allows raycasting to hit the 3D object behind */
  opacity: 0;
  /* Hidden by default */
  transition: opacity 0.2s ease-in-out;
  transform: translateY(-40px);
  /* Position above the icon */
}

.hotspot-icon {
  color: #007bff;
  /* Default icon color */
  font-size: 500px;
  /* Icon size */
  pointer-events: none;
  /* Allow clicks to pass through to the 3D object */
}

/* CSS2DObject container for the label */
.hotspot-container {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  /* This div itself is not clickable, the THREE.Mesh is. */
  /* We use pointer-events: none on children to ensure raycasting works. */
}

