/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: NextGen Techlab Team
Author URI: http://nextgen-techlab.com
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.2
Version: 1.5
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

.entry_main {
  padding: 60px 0px;
  width: 100%;
  position: relative;
}

.breadcrumb-banner {
  position: relative;
  height: auto;
}

.breadcrumb-banner figure {
  height: 100%;
  display: flex;
}

.breadcrumb-banner .content {
  position: absolute;
  bottom: 0;
  width: 100%;
  padding: 10px 0px;
  background: linear-gradient(90deg, #d3d2d2, transparent, transparent);
  top: unset;
}

ol.breadcrumb {
  margin: 0;
}

.breadcrumb-item {
  font-size: 14px;
}

.breadcrumb-item a {
  color: #000;
  font-size: 14px;
}

.breadcrumb-banner .breadcrumb-item+.breadcrumb-item {
  color: #780e04;
  padding: 0;
  display: flex;
  align-items: center;
}

.breadcrumb-item+.breadcrumb-item::before {
  color: #000;
  content: '';
  background-image: url(assets/images/right-arrow.png);
  background-repeat: no-repeat;
  background-size: contain;
  width: 16px;
  height: 15px;
  background-position: center;
  padding: 0px;
  margin: 0px 10px;
}

/* Go to Top START */
.go-top-btn {
  position: fixed;
  bottom: 10px;
  right: 2px;
  background: #10b981;
  color: #fff;
  border: none;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 20px;
  opacity: 0;
  pointer-events: none;
  transform: translateY(20px);
  transition: opacity 0.4s ease, transform 0.4s ease;
  z-index: 9999;
  margin: 0;
  line-height: 0;
}

/* Visible state */
.go-top-btn.show {
  opacity: 1;
  pointer-events: auto;
  transform: translateY(0);
}

/* Hover bounce animation */
.go-top-btn:hover {
  animation: bounce 0.4s;
}

@keyframes bounce {
  0% {
    transform: translateY(0);
  }

  30% {
    transform: translateY(-6px);
  }

  60% {
    transform: translateY(3px);
  }

  100% {
    transform: translateY(0);
  }
}

/* Go to Top END */

/* Pagination */

.pagnav {
  margin: 30px 0;
  text-align: center;
}

.pagnav .page-numbers {
  display: inline-block;
  padding: 10px 18px;
  margin: 0 0px;
  border: 1px solid #ddd;
  color: #ffffff;
  text-decoration: none;
  border-radius: 60px;
  transition: all 0.3s ease;
  font-size: 15px;
  font-weight: 500;
  background: #0b1f43;
}

/* Hover effect */
.pagnav .page-numbers:hover {
  background: #10b981;
  color: #fff;
  border-color: #10b981;
}

/* Current page */
.pagnav .page-numbers.current {
  background: #10b981;
  color: #fff;
  border-color: #10b981;
  cursor: default;
}

/* Dots (...) */
.pagnav .page-numbers.dots {
  border: none;
  background: transparent;
  color: #666;
  cursor: default;
}

/* Previous & Next buttons */
.pagnav .prev,
.pagnav .next {
  font-weight: 600;
}

/* Mobile */
@media (max-width: 768px) {
  .pagnav .page-numbers {
    padding: 8px 12px;
    margin: 3px;
    font-size: 14px;
  }
}

/* Pagination End */



/* ===== Modern TBI Loader ===== */

#page-loader {
  position: fixed;
  inset: 0;
  z-index: 999999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(90deg, #0a1f4a 0%, #0c234f 55%, #0f2857 100%);
  opacity: 1;
  visibility: visible;
  transition:
    opacity 0.65s ease,
    visibility 0.65s ease;
}

#page-loader.hide {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.loader-content {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  animation: loaderEnter 0.8s ease both;
}

/* Logo and animated rings */

.loader-ring {
  position: relative;
  width: 140px;
  height: 140px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: linear-gradient(145deg,
      rgba(10, 168, 158, 0.10),
      rgba(10, 168, 158, 0.02));
}

.loader-ring::before,
.loader-ring::after {
  content: "";
  position: absolute;
  inset: -5px;
  border-radius: 50%;
  border: 2px solid transparent;
  border-top-color: #0aa89e;
  border-right-color: rgba(10, 168, 158, 0.35);
  animation: loaderSpin 1.5s linear infinite;
}

.loader-ring::after {
  inset: -13px;
  border: 1px solid rgba(10, 168, 158, 0.22);
  border-bottom-color: #0aa89e;
  animation: loaderSpinReverse 2.5s linear infinite;
}

.loader-ring-inner {
  position: absolute;
  inset: 9px;
  border: 1px solid rgba(10, 168, 158, 0.12);
  border-radius: 50%;
  animation: loaderPulse 1.8s ease-in-out infinite;
}

.loader-ring img {
  position: relative;
  z-index: 2;
  width: 58%;
  height: auto;
  object-fit: contain;
  animation: logoPulse 2s ease-in-out infinite;
}

/* Brand text */

.loader-brand {
  margin-top: 32px;
  color: #b4b4b4;
  font-size: 25px;
  font-weight: 800;
  letter-spacing: 5px;
}

.loader-text {
  margin: 9px 0 22px;
  color: #78878c;
  font-size: 13px;
  letter-spacing: 1.2px;
}

/* Animated progress bar */

.loader-progress {
  width: 155px;
  height: 3px;
  overflow: hidden;
  border-radius: 10px;
  background: #e7f2f1;
}

.loader-progress span {
  display: block;
  width: 40%;
  height: 100%;
  border-radius: inherit;
  background: linear-gradient(90deg,
      #0aa89e,
      #64d8c8);
  animation: loaderProgress 1.5s ease-in-out infinite;
}

/* Animations */

@keyframes loaderSpin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes loaderSpinReverse {
  to {
    transform: rotate(-360deg);
  }
}

@keyframes loaderPulse {

  0%,
  100% {
    transform: scale(0.94);
    opacity: 0.5;
  }

  50% {
    transform: scale(1.04);
    opacity: 1;
  }
}

@keyframes logoPulse {

  0%,
  100% {
    transform: scale(0.96);
  }

  50% {
    transform: scale(1.04);
  }
}

@keyframes loaderProgress {
  0% {
    transform: translateX(-120%);
  }

  100% {
    transform: translateX(350%);
  }
}

@keyframes loaderEnter {
  from {
    opacity: 0;
    transform: translateY(12px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* Mobile responsive */

@media (max-width: 480px) {
  .loader-ring {
    width: 115px;
    height: 115px;
  }

  .loader-brand {
    font-size: 22px;
    margin-top: 28px;
  }

  .loader-text {
    font-size: 12px;
  }
}

/* Accessibility */

@media (prefers-reduced-motion: reduce) {

  .loader-ring::before,
  .loader-ring::after,
  .loader-ring-inner,
  .loader-ring img,
  .loader-progress span,
  .loader-content {
    animation: none !important;
  }
}


/* =========================================================
   APPLY FOR INCUBATION MODAL 
========================================================= */

.tbi-apply-modal {
  --bs-modal-width: 950px;
  --bs-modal-border-width: 0;
  --bs-modal-bg: #f2f3f5;
  --bs-modal-border-radius: 22px;

  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
}

/* Dark blurred backdrop */
.tbi-apply-modal.show {
  background: rgba(8, 18, 38, 0.45);
}

.modal-backdrop.show {
  opacity: 0;
}

/* Modal dialog */
.tbi-apply-modal .modal-dialog {
  max-width: 950px;
  width: 90%;
}

/* Modal content */
.tbi-apply-content {
  position: relative;
  border: 0;
  border-radius: 22px;
  background: #f2f3f5;
  box-shadow: 0 24px 60px rgba(8, 18, 38, 0.35);
}

/* Close button */
.tbi-apply-close {
  position: absolute;
  top: 15px;
  right: 15px;
  z-index: 5;

  display: flex;
  align-items: center;
  justify-content: center;

  width: 40px;
  height: 40px;

  padding: 0;
  border: 1px solid #d6d9df;
  border-radius: 50%;

  background: #fff;
  color: #333;

  font-size: 15px;
  cursor: pointer;

  transition: all 0.3s ease;
}

.tbi-apply-close:hover {
  background: #1a46b8;
  color: #fff;
}

/* Modal body */
.tbi-apply-body {
  padding: 20px;
}

/* =========================================================
   HEADING
========================================================= */

.tbi-apply-head {
  margin-bottom: 15px;
  text-align: center;
}

.tbi-apply-title {
  margin: 0 0 5px;
  color: #1f2933;
  font-family: "Mulish", sans-serif;
  font-size: 30px;
  font-weight: 700;
  line-height: 1;
}

.tbi-apply-subtitle {
  margin: 0;
  color: #3d4450;
  font-family: "Inter", sans-serif;
  font-size: 14px;
}

/* =========================================================
   FORM CARD
========================================================= */

.tbi-apply-form {
  padding: 20px 25px;
  border: 1px solid #e3e6ea;
  border-radius: 20px;
  background: #fafafa;
  box-shadow: 0 6px 20px rgba(17, 24, 39, 0.06);
}

.tbi-apply-row {
  --bs-gutter-x: 22px;
  --bs-gutter-y: 10px;
}

/* Labels */
.tbi-apply-label {
  display: block;
  margin-bottom: 8px;

  color: #1f2933;
  font-family: "Inter", sans-serif;
  font-size: 13px;
  font-weight: 600;
}

.tbi-apply-label span {
  color: #ff0000;
}

.error-message {
  color: red;
  font-size: 13px;
  margin-top: 4px;
  display: block;
}

.input-error {
  border-bottom: 2px solid red !important;
}

.tbi-honeypot {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
  clip-path: inset(50%) !important;
  white-space: nowrap !important;
}

/* Input fields */
.tbi-apply-input {
  width: 100%;
  height: 43px;

  padding: 0 22px;

  border: 1px solid #d9dce1;
  border-radius: 28px;

  background-color: #f5f6f7;
  color: #1f2933;

  font-family: "Inter", sans-serif;
  font-size: 16px;

  box-shadow: none;
  outline: none;

  transition: all 0.3s ease;
}

.tbi-apply-input::placeholder {
  color: #6b7280;
  opacity: 1;
}

/* Focus */
.tbi-apply-input:focus {
  border-color: #1f2933;
  background-color: #fff;
  box-shadow: 0 0 0 3px rgba(26, 70, 184, 0.12);
}

/* Select dropdown */
.tbi-apply-select {
  padding-right: 46px;
  background-position: right 20px center;
  background-size: 14px 14px;
  cursor: pointer;
}

/* Textarea */
.tbi-apply-textarea {
  min-height: 90px !important;
  padding: 16px 22px;
  border-radius: 20px;
  resize: vertical;
}

/* =========================================================
   SUBMIT BUTTON
========================================================= */

.tbi-apply-submit {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 13px;

  width: 100%;
  height: 42px;

  margin-top: 5px;

  border: 0;
  border-radius: 30px;

  background: #1a46b8;
  color: #fff;

  font-family: "Inter", sans-serif;
  font-size: 17px;
  font-weight: 700;

  cursor: pointer;
  transition: background 0.3s ease;
}

.tbi-apply-submit:hover {
  background: #133a9a;
}

/* =========================================================
   VALIDATION
========================================================= */

.tbi-apply-error {
  display: none;
  margin-top: 4px;
  padding-left: 14px;

  color: #d93025;
  font-family: "Inter", sans-serif;
  font-size: 12px;
  line-height: 1.4;
}

/* .tbi-apply-input:not(:placeholder-shown):invalid {
  border-color: #d93025;
  background-color: #fff7f6;
} */

.tbi-apply-input:not(:placeholder-shown):invalid+.tbi-apply-error {
  display: block;
}

#tbiApplyEmail:not(:placeholder-shown):valid,
#tbiApplyPhone:not(:placeholder-shown):valid {
  border-color: #1e9e5a;
}

/* =========================================================
   RESPONSIVE DESIGN
========================================================= */

@media (max-width: 767px) {

  .tbi-apply-modal .modal-dialog {
    width: 94%;
    margin: 15px auto;
  }

  .tbi-apply-content {
    border-radius: 16px;
  }

  .tbi-apply-body {
    padding: 45px 16px 20px;
  }

  .tbi-apply-title {
    font-size: 28px;
  }

  .tbi-apply-subtitle {
    font-size: 13px;
    padding: 0 10px;
  }

  .tbi-apply-form {
    padding: 20px 16px;
    border-radius: 15px;
  }

  .tbi-apply-row {
    --bs-gutter-x: 0;
    --bs-gutter-y: 13px;
  }

  .tbi-apply-label {
    font-size: 12px;
  }

  .tbi-apply-input {
    height: 46px;
    font-size: 14px;
  }

  .tbi-apply-textarea {
    min-height: 110px;
    padding: 13px 17px;
  }

  .tbi-apply-submit {
    height: 48px;
    font-size: 15px;
  }

  .tbi-apply-close {
    top: 10px;
    right: 10px;
    width: 32px;
    height: 32px;
    font-size: 12px;
  }
}