/* ==========================================================================
   Octa Elevators — Premium / 3D visual layer
   Additive stylesheet. Loaded AFTER style.css so it can refine the look
   without touching the original theme file. Safe to delete to revert.
   ========================================================================== */

:root {
  --p3d-gold: #ffb347;
  --p3d-primary-grad: linear-gradient(135deg, #ff7a1a 0%, #ff6600 55%, #e65100 100%);
  --p3d-dark-grad: linear-gradient(135deg, #1a1a1a 0%, #0c0a0a 100%);
  --p3d-glass-bg: rgba(255, 255, 255, 0.06);
  --p3d-glass-border: rgba(255, 255, 255, 0.14);
  --p3d-shadow-soft: 0 10px 30px -10px rgba(12, 10, 10, 0.18);
  --p3d-shadow-lift: 0 30px 60px -20px rgba(255, 102, 0, 0.35), 0 15px 35px -15px rgba(12, 10, 10, 0.35);
  --p3d-ease: cubic-bezier(0.22, 1, 0.36, 1);
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    animation-duration: 0.001ms !important;
    transition-duration: 0.001ms !important;
  }
}

/* ---------- global polish ---------- */
body {
  -webkit-font-smoothing: antialiased;
}

::selection {
  background: var(--color-primary);
  color: #fff;
}

/* premium scrollbar */
::-webkit-scrollbar {
  width: 10px;
}
::-webkit-scrollbar-track {
  background: #f2f2f2;
}
::-webkit-scrollbar-thumb {
  background: var(--p3d-primary-grad);
  border-radius: 10px;
}

/* ---------- header: glass + depth ---------- */
.header--sticky.sticky {
  background: rgba(255, 255, 255, 0.82) !important;
  backdrop-filter: blur(16px) saturate(160%);
  -webkit-backdrop-filter: blur(16px) saturate(160%);
  box-shadow: 0 10px 30px -12px rgba(12, 10, 10, 0.25);
  border-bottom: 1px solid rgba(255, 102, 0, 0.15);
}

.header-mid-one-wrapper .logo-area img {
  filter: drop-shadow(0 6px 14px rgba(12, 10, 10, 0.18));
  transition: transform 0.4s var(--p3d-ease);
}
.header-mid-one-wrapper .logo-area:hover img {
  transform: translateY(-2px) scale(1.03);
}

/* ==========================================================================
   Header — premium pass (homepage "header-one" + inner-page "heder-two")
   ========================================================================== */

/* -- homepage header-one -- */
header.header-one .header-top {
  background: linear-gradient(90deg, #17181a 0%, #0c0a0a 100%);
  border-bottom: none;
}
header.header-one .header-top-wrapper .left::after,
header.header-one .header-top-wrapper .right ul li::after {
  background: rgba(255, 255, 255, 0.14);
}
header.header-one .header-top-wrapper .left p.disc {
  color: rgba(255, 255, 255, 0.75);
  letter-spacing: 0.06em;
}
header.header-one .header-top-wrapper .left .icon svg path {
  filter: drop-shadow(0 0 6px rgba(255, 102, 0, 0.7));
}
header.header-one .header-top-wrapper .right ul li a {
  color: rgba(255, 255, 255, 0.75);
}
header.header-one .header-top-wrapper .right ul li a:hover {
  color: var(--p3d-gold);
}

.header-mid {
  background: #fff;
  position: relative;
  z-index: 2;
  box-shadow: 0 2px 20px rgba(12, 10, 10, 0.05);
}
.header-mid-one-wrapper .header-right .single-component .icon i {
  background: linear-gradient(145deg, #ffffff 0%, #f5f5f6 100%);
  box-shadow: 0 8px 20px -6px rgba(255, 102, 0, 0.35), inset 0 0 0 1px rgba(255, 102, 0, 0.12);
  color: var(--color-primary);
  transition: transform 0.35s var(--p3d-ease), box-shadow 0.35s var(--p3d-ease);
}
.header-mid-one-wrapper .header-right .single-component.info-con:hover .icon i {
  transform: translateY(-3px) scale(1.06);
  box-shadow: 0 12px 26px -6px rgba(255, 102, 0, 0.5), inset 0 0 0 1px rgba(255, 102, 0, 0.2);
}

.nav-area-one .nav-header-area .clip-path {
  background: var(--p3d-primary-grad) !important;
  box-shadow: 0 18px 34px -14px rgba(255, 102, 0, 0.55);
}
.nav-area-one .nav-header-area .clip-path::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(255, 255, 255, 0.22) 0%, transparent 45%);
  pointer-events: none;
}
.header-one .nav-area-one .wrapper .nav-area nav ul li a {
  color: #fff;
  font-family: var(--font-primary);
  font-weight: 700;
  letter-spacing: 0.03em;
  position: relative;
  text-shadow: 0 1px 3px rgba(0, 0, 0, 0.15);
}
.header-one .nav-area-one .wrapper .nav-area nav ul li a::after {
  content: "";
  position: absolute;
  left: 20px;
  right: 20px;
  bottom: 12px;
  height: 2px;
  background: #fff;
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s var(--p3d-ease);
}
.header-one .nav-area-one .wrapper .nav-area nav ul li a:hover::after {
  transform: scaleX(1);
}
.header-one .nav-area-one .wrapper .btn-right .search-btn i {
  transition: transform 0.3s var(--p3d-ease);
}
.header-one .nav-area-one .wrapper .btn-right .search-btn:hover i {
  transform: scale(1.15);
}

/* hamburger: the full nav is already visible on desktop, so only show
   the slide-in menu button where the desktop nav is hidden */
@media only screen and (min-width: 1200px) {
  .heder-two .header-two-container .header-main-wrapper .rts-header-right .menu-area,
  .header-one #menu-btn {
    display: none !important;
  }
}

/* -- inner-page heder-two -- */
.heder-two {
  box-shadow: 0 4px 24px rgba(12, 10, 10, 0.05);
  position: relative;
  z-index: 5;
}
.heder-two .header-two-container .header-main-wrapper .rts-header-right .top {
  background: linear-gradient(90deg, #fafafa 0%, #f3f3f4 100%);
  border-bottom: 1px solid #ececec;
}
.heder-two .header-two-container .header-main-wrapper .rts-header-right .top .start-top .icon i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: var(--p3d-primary-grad);
  color: #fff;
  font-size: 12px;
}
.heder-two .header-two-container .header-main-wrapper .rts-header-right .top .end-top .single-info .icon,
.heder-two .header-two-container .header-main-wrapper .rts-header-right .top .end-top .single-info > i {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 26px;
  height: 26px;
  border-radius: 50%;
  background: #fff;
  box-shadow: 0 4px 12px -3px rgba(255, 102, 0, 0.4), inset 0 0 0 1px rgba(255, 102, 0, 0.15);
}
.heder-two .header-two-container .header-main-wrapper .rts-header-right .top .end-top .single-info i {
  color: var(--color-primary);
  font-size: 12px;
}
.heder-two .header-two-container .header-main-wrapper .rts-header-right .bottom .nav-area ul li a.nav-link {
  position: relative;
  font-weight: 700;
  transition: color 0.3s var(--p3d-ease);
}
.heder-two .header-two-container .header-main-wrapper .rts-header-right .bottom .nav-area ul li a.nav-link::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -8px;
  height: 2px;
  background: var(--p3d-primary-grad);
  border-radius: 2px;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s var(--p3d-ease);
}
.heder-two .header-two-container .header-main-wrapper .rts-header-right .bottom .nav-area ul li a.nav-link:hover::after,
.heder-two .header-two-container .header-main-wrapper .rts-header-right .bottom .nav-area ul .has-droupdown:hover .nav-link::after {
  transform: scaleX(1);
}
.heder-two .header-two-container .header-main-wrapper .rts-header-right .menu-area {
  border-radius: 50%;
  transition: transform 0.3s var(--p3d-ease), box-shadow 0.3s var(--p3d-ease), background 0.3s var(--p3d-ease);
}
.heder-two .header-two-container .header-main-wrapper .rts-header-right .menu-area:hover {
  background: var(--color-primary);
  transform: scale(1.06);
  box-shadow: 0 10px 22px -8px rgba(255, 102, 0, 0.55);
}
.heder-two .header-two-container .header-main-wrapper .rts-header-right .menu-area:hover svg rect {
  fill: #fff;
}

/* ---------- premium buttons: gradient + shine + 3D press ---------- */
.rts-btn {
  border-radius: 8px !important;
  position: relative;
  transform-style: preserve-3d;
  will-change: transform;
  transition: transform 0.35s var(--p3d-ease), box-shadow 0.35s var(--p3d-ease);
}

.rts-btn.btn-primary {
  background: var(--p3d-primary-grad) !important;
  box-shadow: 0 12px 24px -10px rgba(255, 102, 0, 0.55), inset 0 1px 0 rgba(255, 255, 255, 0.35);
}
.rts-btn.btn-seconday {
  background: var(--p3d-dark-grad) !important;
  box-shadow: 0 12px 24px -10px rgba(12, 10, 10, 0.45);
}
.rts-btn.btn-terciary {
  box-shadow: 0 10px 22px -12px rgba(12, 10, 10, 0.25);
}

.rts-btn::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  pointer-events: none;
  background: linear-gradient(115deg, transparent 20%, rgba(255, 255, 255, 0.45) 42%, transparent 60%);
  transform: translateX(-130%);
  transition: transform 0.7s var(--p3d-ease);
}
.rts-btn:hover::before {
  transform: translateX(130%);
}

.rts-btn:hover {
  transform: translateY(-4px);
}
.rts-btn.btn-primary:hover {
  box-shadow: 0 20px 34px -10px rgba(255, 102, 0, 0.65), inset 0 1px 0 rgba(255, 255, 255, 0.4);
}
.rts-btn.btn-seconday:hover {
  box-shadow: 0 20px 34px -10px rgba(12, 10, 10, 0.55);
}
.rts-btn:active {
  transform: translateY(-1px) scale(0.98);
}

/* ---------- hero banner: cinematic depth ---------- */
.rts-banner-one {
  position: relative;
  overflow: hidden;
}
.rts-banner-one .container {
  position: relative;
  z-index: 2;
}
.rts-banner-one::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(100deg, rgba(6, 5, 5, 0.72) 0%, rgba(6, 5, 5, 0.42) 45%, rgba(6, 5, 5, 0.1) 75%);
}
@media only screen and (min-width: 992px) {
  .swiper-slide-active .rts-banner-one.bg_image {
    animation: p3dKenBurns 9s var(--p3d-ease) forwards;
  }
}
@keyframes p3dKenBurns {
  from { background-size: 104%; }
  to { background-size: 118%; }
}

.title-banner {
  text-shadow: 0 8px 30px rgba(0, 0, 0, 0.45);
}
.b_one-pre {
  text-shadow: 0 2px 10px rgba(0, 0, 0, 0.4);
}

.button-area-banner .call-area {
  background: var(--p3d-glass-bg);
  backdrop-filter: blur(10px);
  border: 1px solid var(--p3d-glass-border);
  border-radius: 10px;
}

/* ---------- 3D tilt cards (JS adds rotation via inline transform) ---------- */
.rts-single-project-one,
.single-case-wrapper,
.single-cta-area,
.single-fun-facts-one,
.rts-blog-arae .col-lg-4 > div {
  transform-style: preserve-3d;
  perspective: 1000px;
  will-change: transform;
  transition: transform 0.5s var(--p3d-ease), box-shadow 0.5s var(--p3d-ease);
}

/* project / service cards */
.rts-single-project-one {
  border-radius: 14px !important;
  box-shadow: var(--p3d-shadow-soft);
  border: 1px solid rgba(12, 10, 10, 0.06);
}
.rts-single-project-one .thumbnail,
.rts-single-project-one .thumbnail img {
  border-radius: 14px 14px 0 0 !important;
}
.rts-single-project-one .project-inner {
  border-radius: 0 0 14px 14px !important;
}
.rts-single-project-one .thumbnail::after {
  border-radius: 14px 0 12px 0 !important;
  box-shadow: -4px -4px 14px rgba(0, 0, 0, 0.15);
}
.rts-single-project-one:hover {
  box-shadow: var(--p3d-shadow-lift);
}

/* premium model swiper cards */
.single-case-wrapper {
  border-radius: 16px;
  overflow: hidden;
  box-shadow: var(--p3d-shadow-soft);
}
.single-case-wrapper a {
  display: block;
  overflow: hidden;
  border-radius: 16px;
}
.single-case-wrapper a img {
  transition: transform 0.7s var(--p3d-ease), filter 0.5s var(--p3d-ease);
}
.single-case-wrapper:hover a img {
  transform: scale(1.1);
  filter: brightness(0.9);
}
.single-case-wrapper:hover {
  box-shadow: var(--p3d-shadow-lift);
}
/* cta icon boxes */
.single-cta-area {
  border-radius: 14px;
  overflow: hidden;
}
.single-cta-area:not(.bg) {
  background: var(--p3d-dark-grad);
}
.single-cta-area .icon-area {
  transition: transform 0.5s var(--p3d-ease);
}
.single-cta-area:hover .icon-area {
  transform: translateY(-6px) rotate(-6deg) scale(1.08);
}
.single-cta-area:hover {
  box-shadow: var(--p3d-shadow-lift);
}

/* fun facts / counters */
.single-fun-facts-one {
  background: rgba(255, 255, 255, 0.04);
  backdrop-filter: blur(6px);
  border: 1px solid rgba(255, 255, 255, 0.08);
  border-radius: 14px;
  padding: 10px;
}
.single-fun-facts-one .inner .icon img {
  transition: transform 0.6s var(--p3d-ease);
  filter: drop-shadow(0 8px 14px rgba(255, 102, 0, 0.35));
}
.single-fun-facts-one:hover .inner .icon img {
  transform: translateY(-8px) scale(1.1) rotate(-4deg);
}
.single-fun-facts-one .inner .title {
  text-shadow: 0 0 24px rgba(255, 102, 0, 0.55);
}
.single-fun-facts-one:hover {
  box-shadow: var(--p3d-shadow-lift);
  border-color: rgba(255, 102, 0, 0.35);
}

/* blog cards + generic thumbnail zoom sitewide */
.thumbnail {
  overflow: hidden;
  display: block;
}
.thumbnail img {
  transition: transform 0.7s var(--p3d-ease), filter 0.5s var(--p3d-ease);
}
.thumbnail:hover img {
  transform: scale(1.08);
}

.rts-blog-arae .col-lg-4 > div {
  border-radius: 14px;
  overflow: hidden;
  box-shadow: var(--p3d-shadow-soft);
  background: #fff;
}
.rts-blog-arae .col-lg-4 > div .inner {
  padding: 24px;
}
.rts-blog-arae .col-lg-4 > div:hover {
  box-shadow: var(--p3d-shadow-lift);
}

/* footer premium edge */
.rts-footer-area {
  position: relative;
}
.rts-footer-area::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--p3d-primary-grad);
}
.rts-footer-area .footer-logo {
  display: inline-block;
  margin-bottom: 22px;
  transition: transform 0.3s var(--p3d-ease);
}
.rts-footer-area .footer-logo:hover {
  transform: translateY(-2px);
}
.rts-footer-area .subscribe-area {
  background: var(--p3d-glass-bg);
  backdrop-filter: blur(10px);
  border: 1px solid var(--p3d-glass-border);
  border-radius: 12px;
}

/* homepage footer: four columns spread across the full width */
.main-footer-one-area {
  display: grid !important;
  grid-template-columns: 1.5fr 1fr 1.1fr 1.4fr;
  gap: 56px;
}
.main-footer-one-area .body.one {
  max-width: 300px;
}
@media only screen and (max-width: 991px) {
  .main-footer-one-area {
    grid-template-columns: repeat(2, 1fr);
    gap: 44px;
  }
}
@media only screen and (max-width: 575px) {
  .main-footer-one-area {
    grid-template-columns: 1fr;
  }
}

/* homepage quick info card (hours / phone / address) */
.rts-quick-info {
  position: relative;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  background: #fff;
  border-radius: 18px;
  border: 1px solid rgba(12, 10, 10, 0.06);
  box-shadow: 0 24px 60px -24px rgba(12, 10, 10, 0.22);
  overflow: hidden;
}
.rts-quick-info::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 3px;
  background: var(--p3d-primary-grad);
}
.quick-info-item {
  display: flex;
  align-items: center;
  gap: 18px;
  padding: 36px 34px;
  color: inherit;
  transition: background 0.35s var(--p3d-ease);
}
.quick-info-item + .quick-info-item {
  border-left: 1px solid #efefef;
}
a.quick-info-item:hover {
  background: #fff8f2;
}
.quick-info-icon {
  flex: 0 0 auto;
  width: 58px;
  height: 58px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--p3d-primary-grad);
  color: #fff;
  font-size: 22px;
  box-shadow: 0 12px 24px -10px rgba(255, 102, 0, 0.7);
  transition: transform 0.35s var(--p3d-ease);
}
.quick-info-item:hover .quick-info-icon {
  transform: translateY(-3px) scale(1.05);
}
.quick-info-text .label {
  display: block;
  font-family: var(--font-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--color-body);
  margin-bottom: 4px;
}
.quick-info-text .value {
  margin: 0;
  font-family: var(--font-primary);
  font-size: 22px;
  font-weight: 700;
  line-height: 1.3;
  color: var(--color-heading-1);
}
@media only screen and (max-width: 991px) {
  .rts-quick-info {
    grid-template-columns: 1fr;
  }
  .quick-info-item + .quick-info-item {
    border-left: none;
    border-top: 1px solid #efefef;
  }
  .quick-info-item {
    padding: 26px 24px;
  }
}

/* current category highlight on service category pages */
.rts-single-wized .single-categories li.active a {
  background: var(--color-primary);
  color: #fff;
  border-color: var(--color-primary);
}
.rts-single-wized .single-categories li.active a i {
  color: #fff;
}

/* ---------- mobile / tablet fixes ---------- */
@media only screen and (max-width: 1199px) {
  /* theme drops this column's right gutter entirely, pushing the
     Categories box against the screen edge */
  .sd-pad-r {
    padding-right: calc(var(--bs-gutter-x) * 0.5) !important;
  }
}
@media only screen and (max-width: 767px) {
  /* stacked footer is taller than its photo, which leaves a visible seam */
  .rts-footer-area.footer-bg {
    background-image: linear-gradient(180deg, #1a1a1b 0%, #0f0f10 100%) !important;
  }
  .rts-footer-area .container {
    padding-left: 22px;
    padding-right: 22px;
  }
  .main-footer-one-area {
    gap: 36px;
  }
}

/* ==========================================================================
   Page header (breadcrumb band) — every inner page shares this markup:
   .rts-bread-crumb-area.bg-breadcrumb > .breadcrumb-inner > h1 + .meta
   Was: one reused stock photo, oversized black title, plain underline.
   Now: a compact dark band matching the site's premium dark/orange
   language, no repeated stock photo, refined type and breadcrumb trail.
   ========================================================================== */
.rts-bread-crumb-area {
  padding: 96px 0 80px !important;
  position: relative;
  overflow: hidden;
  background-image: none !important;
  background-color: #0c0d0e;
}
@media only screen and (max-width: 767px) {
  .rts-bread-crumb-area {
    padding: 74px 0 58px !important;
  }
}
.rts-bread-crumb-area::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(60% 90% at 15% 0%, rgba(255, 102, 0, 0.22) 0%, transparent 60%),
    radial-gradient(50% 80% at 100% 100%, rgba(255, 102, 0, 0.14) 0%, transparent 55%),
    linear-gradient(180deg, #17181a 0%, #0c0d0e 60%, #070708 100%);
}
.rts-bread-crumb-area::after {
  content: "";
  position: absolute;
  inset: 0;
  background: repeating-linear-gradient(115deg, rgba(255, 255, 255, 0.035) 0px, rgba(255, 255, 255, 0.035) 1px, transparent 1px, transparent 4px);
  mix-blend-mode: overlay;
  opacity: 0.5;
}
.rts-bread-crumb-area .container {
  position: relative;
  z-index: 1;
}
.rts-bread-crumb-area::before ~ .container {
  z-index: 1;
}
.breadcrumb-inner .title,
.breadcrumb-inner h1.title,
.breadcrumb-inner h1 {
  font-size: 44px !important;
  line-height: 1.2 !important;
  font-weight: 700 !important;
  color: #fff !important;
  letter-spacing: 0.01em;
  text-transform: uppercase;
  text-shadow: 0 2px 20px rgba(0, 0, 0, 0.4);
}
@media only screen and (max-width: 767px) {
  .breadcrumb-inner .title,
  .breadcrumb-inner h1.title,
  .breadcrumb-inner h1 {
    font-size: 30px !important;
  }
}
.breadcrumb-inner .meta {
  display: none !important;
}
.breadcrumb-inner .meta a {
  color: rgba(255, 255, 255, 0.55) !important;
  font-size: 13px;
  letter-spacing: 0.12em;
  font-weight: 700;
}
.breadcrumb-inner .meta a.next {
  color: var(--p3d-gold) !important;
}
.breadcrumb-inner .meta a.next::after {
  background: var(--p3d-gold) !important;
  opacity: 0.6;
}
.breadcrumb-inner .meta a:hover {
  color: #fff !important;
}
.breadcrumb-inner .meta a:hover.next::after {
  background: #fff !important;
  opacity: 1;
}

/* ==========================================================================
   Inquiry form (homepage + contact page)
   Split card: dark info panel + white form panel, icon-embedded fields.
   ========================================================================== */
.rts-inquiry-form-wrap {
  background: #fff;
  border-radius: 18px;
  overflow: hidden;
  box-shadow: var(--p3d-shadow-soft);
  border: 1px solid rgba(12, 10, 10, 0.06);
}
.inquiry-split {
  display: flex;
  flex-wrap: wrap;
}
.inquiry-side {
  flex: 0 0 38%;
  max-width: 38%;
  position: relative;
  background: var(--p3d-dark-grad);
  padding: 48px 40px;
  color: #fff;
  overflow: hidden;
}
.inquiry-side::before {
  content: "";
  position: absolute;
  inset: 0;
  background:
    radial-gradient(120% 70% at 15% 0%, rgba(255, 102, 0, 0.28) 0%, transparent 60%),
    radial-gradient(90% 60% at 100% 100%, rgba(255, 102, 0, 0.16) 0%, transparent 55%);
  pointer-events: none;
}
.inquiry-side > * {
  position: relative;
  z-index: 1;
}
.inquiry-side .pre {
  display: inline-block;
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 13px;
  letter-spacing: 0.2em;
  text-transform: uppercase;
  color: var(--p3d-gold);
  margin-bottom: 14px;
}
.inquiry-side h3 {
  color: #fff;
  font-size: 28px;
  line-height: 1.3;
  margin-bottom: 16px;
}
.inquiry-side p {
  color: rgba(255, 255, 255, 0.7);
  font-size: 15px;
  line-height: 1.7;
  margin-bottom: 34px;
}
.inquiry-quick-info {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.inquiry-quick-info li {
  display: flex;
  align-items: center;
  gap: 14px;
  font-size: 14px;
  color: rgba(255, 255, 255, 0.85);
}
.inquiry-quick-info li a {
  color: rgba(255, 255, 255, 0.85);
  transition: color 0.3s var(--p3d-ease);
}
.inquiry-quick-info li a:hover {
  color: var(--p3d-gold);
}
.inquiry-quick-info .icon {
  flex: 0 0 auto;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255, 255, 255, 0.08);
  border: 1px solid rgba(255, 255, 255, 0.14);
  color: var(--p3d-gold);
  font-size: 15px;
}

.inquiry-form-side {
  flex: 1;
  min-width: 0;
  padding: 48px 44px;
}
@media only screen and (max-width: 991px) {
  .inquiry-side,
  .inquiry-form-side {
    flex: 0 0 100%;
    max-width: 100%;
  }
  .inquiry-side {
    padding: 40px 32px;
  }
}
@media only screen and (max-width: 575px) {
  .inquiry-side,
  .inquiry-form-side {
    padding: 30px 22px;
  }
  .inquiry-side h3 {
    font-size: 22px;
  }
}

.rts-inquiry-form .single-input {
  margin-bottom: 22px;
  position: relative;
}
.rts-inquiry-form label {
  display: block;
  font-family: var(--font-primary);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--color-body);
  margin-bottom: 9px;
}
.rts-inquiry-form label .required {
  color: var(--color-primary);
}
.rts-inquiry-form .single-input .field-icon {
  position: absolute;
  left: 18px;
  top: 58px;
  color: var(--color-primary);
  font-size: 15px;
  pointer-events: none;
}
.rts-inquiry-form .single-input.textarea-input .field-icon {
  top: 52px;
}
.rts-inquiry-form input,
.rts-inquiry-form select,
.rts-inquiry-form textarea {
  width: 100%;
  border: 1.5px solid #ececed;
  border-radius: 10px;
  background: #f8f8f9;
  padding: 15px 18px 15px 46px;
  font-family: var(--font-secondary);
  font-size: 15px;
  color: var(--color-heading-1);
  transition: border-color 0.3s var(--p3d-ease), box-shadow 0.3s var(--p3d-ease), background 0.3s var(--p3d-ease);
}
.rts-inquiry-form textarea {
  min-height: 130px;
  resize: vertical;
  padding-top: 14px;
}
.rts-inquiry-form input:focus,
.rts-inquiry-form select:focus,
.rts-inquiry-form textarea:focus {
  outline: none;
  border-color: var(--color-primary);
  background: #fff;
  box-shadow: 0 0 0 4px rgba(255, 102, 0, 0.12);
}
.rts-inquiry-form select {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%236E777D' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 18px center;
  padding-right: 44px;
  cursor: pointer;
}
.rts-inquiry-form button[type="submit"] {
  border: none;
  cursor: pointer;
  width: 100%;
  justify-content: center;
  display: flex;
  align-items: center;
  gap: 10px;
  margin-top: 6px;
}
.rts-inquiry-form .form-note {
  font-size: 13px;
  color: var(--color-body);
  margin-top: 4px;
}
#form-messages,
#form-messages-home {
  margin: 0 0 18px;
  font-family: var(--font-primary);
  font-weight: 600;
  font-size: 14px;
  padding: 12px 16px;
  border-radius: 8px;
}
#form-messages:empty,
#form-messages-home:empty {
  display: none;
  margin: 0;
  padding: 0;
}
#form-messages.success,
#form-messages-home.success {
  color: var(--color-success);
  background: rgba(62, 183, 94, 0.1);
}
#form-messages.error,
#form-messages-home.error {
  color: var(--color-danger);
  background: rgba(255, 0, 3, 0.08);
}

/* ==========================================================================
   Elevator-door preloader
   Markup (added to every page): #elevate-load > .elevator-door--left/right
   + .loader-wrapper > .preloader-brand + .lds-ellipsis
   Trigger: main.js already adds class "loaded" to #elevate-load on window
   load — we hook that same class to slide the doors open instead of the
   theme's instant display:none, then go fully invisible once the doors
   have cleared the screen.

   A tiny inline script in <head> (see every page's <head>) tags <html>
   with .skip-preloader before first paint when this is an internal
   navigation within the same session (not a fresh visit or a reload), so
   the animation only ever plays on first entry to the site or a refresh.
   ========================================================================== */
html.skip-preloader #elevate-load {
  display: none !important;
}
#elevate-load {
  background: transparent;
  overflow: hidden;
  visibility: visible;
}

#elevate-load .loader-wrapper {
  position: relative;
  width: 100%;
  height: 100%;
}

/* elevator frame: header transom + floor threshold, so the doors read as
   part of a real elevator cab rather than two flat rectangles */
#elevate-load .loader-wrapper::before,
#elevate-load .loader-wrapper::after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  height: 14px;
  z-index: 4;
  background: linear-gradient(180deg, #1b1c1e 0%, #0a0a0b 100%);
  box-shadow: 0 0 24px 2px rgba(255, 102, 0, 0.25);
}
#elevate-load .loader-wrapper::before {
  top: 0;
  border-bottom: 1px solid rgba(255, 102, 0, 0.4);
}
#elevate-load .loader-wrapper::after {
  bottom: 0;
  border-top: 1px solid rgba(0, 0, 0, 0.8);
  box-shadow: none;
  background: linear-gradient(180deg, #0a0a0b 0%, #000 100%);
}

.elevator-door {
  position: absolute;
  top: 14px;
  bottom: 14px;
  width: 50%;
  z-index: 2;
  background:
    /* inner seam edge: bright highlight then deep shadow, like a bevelled edge catching light */
    linear-gradient(90deg, rgba(255, 255, 255, 0.16) 0%, rgba(255, 255, 255, 0.02) 1.2%, transparent 3%, transparent 97%, rgba(0, 0, 0, 0.55) 100%),
    /* horizontal panel grooves: header rail, mid seam, kick plate */
    linear-gradient(180deg,
      transparent 0%, transparent 13.4%, rgba(0, 0, 0, 0.55) 13.4%, rgba(255, 255, 255, 0.1) 13.8%, transparent 14.4%,
      transparent 50.4%, rgba(0, 0, 0, 0.5) 50.4%, rgba(255, 255, 255, 0.09) 50.8%, transparent 51.4%,
      transparent 85.4%, rgba(0, 0, 0, 0.55) 85.4%, rgba(255, 255, 255, 0.1) 85.8%, transparent 86.4%,
      transparent 100%),
    /* overhead lobby light: brighter near the top-center, falling off toward the edges/bottom */
    radial-gradient(120% 60% at 50% 0%, rgba(255, 255, 255, 0.14) 0%, transparent 55%),
    /* brushed vertical grain */
    repeating-linear-gradient(90deg, rgba(255, 255, 255, 0.05) 0px, rgba(255, 255, 255, 0.09) 1px, rgba(0, 0, 0, 0.1) 2px, rgba(255, 255, 255, 0.03) 4px),
    /* base metal tone, light at top fading to a darker foot */
    linear-gradient(180deg, #55565a 0%, #414247 12%, #313236 45%, #232427 75%, #17181a 100%);
  box-shadow: inset 0 0 90px rgba(0, 0, 0, 0.65);
  transition: transform 1.8s cubic-bezier(0.76, 0, 0.24, 1);
}
.elevator-door--left {
  left: 0;
}
.elevator-door--right {
  right: 0;
}

/* brand accent trim beside the seam */
.elevator-door::before {
  content: "";
  position: absolute;
  top: 0;
  bottom: 0;
  width: 3px;
  background: linear-gradient(180deg, transparent 0%, rgba(255, 130, 40, 0.9) 15%, rgba(255, 102, 0, 0.95) 50%, rgba(255, 130, 40, 0.9) 85%, transparent 100%);
  box-shadow: 0 0 12px 1px rgba(255, 102, 0, 0.55);
}
.elevator-door--left::before {
  right: 22px;
}
.elevator-door--right::before {
  left: 22px;
}

/* door handle groove */
.elevator-door .handle {
  position: absolute;
  top: 50%;
  width: 7px;
  height: 140px;
  transform: translateY(-50%);
  background: linear-gradient(90deg, #101112 0%, #58595d 35%, #101112 55%, #3a3b3e 100%);
  border-radius: 4px;
  box-shadow: 0 0 0 1px rgba(255, 255, 255, 0.08), 2px 0 6px rgba(0, 0, 0, 0.5);
}
.elevator-door--left .handle {
  right: 34px;
}
.elevator-door--right .handle {
  left: 34px;
}

.elevator-door::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(115deg, transparent 32%, rgba(255, 255, 255, 0.12) 48%, transparent 64%);
  transform: translateX(-120%);
  animation: p3dDoorSheen 2.8s ease-in-out infinite;
}
.elevator-door--right::after {
  animation-delay: 1.4s;
}
@keyframes p3dDoorSheen {
  0% { transform: translateX(-120%); }
  60%, 100% { transform: translateX(120%); }
}

/* brand logo, mounted centered across the seam: the left half lives on
   the left door, the right half on the right door, so opening the doors
   visually tears the logo in two and each half rides off with its gate */
:root {
  --door-logo-w: clamp(340px, 32vw, 560px);
}
.door-logo-half {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  width: calc(var(--door-logo-w) / 2);
  overflow: hidden;
  z-index: 4;
  pointer-events: none;
}
.door-logo-half img {
  display: block;
  width: var(--door-logo-w);
  max-width: none;
  height: auto;
}
.elevator-door--left .door-logo-half {
  right: 0;
}
.elevator-door--right .door-logo-half {
  left: 0;
}
/* shadow on the clipped half, not the img, so it isn't cut into a box */
.door-logo-half {
  filter: drop-shadow(0 6px 14px rgba(0, 0, 0, 0.55));
}
.elevator-door--right .door-logo-half img {
  margin-left: calc(var(--door-logo-w) / -2);
}

#elevate-load .lds-ellipsis {
  top: calc(50% + var(--door-logo-w) * 0.36);
  z-index: 3;
}
#elevate-load .lds-ellipsis div {
  background: var(--color-primary) !important;
  box-shadow: 0 0 8px 1px rgba(255, 102, 0, 0.7);
}

/* open sequence — triggered by the "loaded" class main.js adds on window load */
#elevate-load.loaded {
  display: block !important;
  pointer-events: none;
  transition: visibility 0.01s linear 1.8s;
  visibility: hidden;
}
#elevate-load.loaded .elevator-door--left {
  transform: translateX(-101%);
}
#elevate-load.loaded .elevator-door--right {
  transform: translateX(101%);
}
#elevate-load.loaded .elevator-door::after {
  animation: none;
  opacity: 0;
}
#elevate-load.loaded .lds-ellipsis {
  opacity: 0;
  transition: opacity 0.45s ease;
}
#elevate-load.loaded .loader-wrapper::before,
#elevate-load.loaded .loader-wrapper::after {
  transition: opacity 0.8s ease 0.9s;
  opacity: 0;
}

@media (prefers-reduced-motion: reduce) {
  #elevate-load.loaded {
    transition: visibility 0.01s linear 0.2s;
  }
  .elevator-door,
  .door-logo-half img {
    animation: none !important;
    transition-duration: 0.2s !important;
  }
}

@media only screen and (max-width: 575px) {
  :root {
    --door-logo-w: 300px;
  }
  .elevator-door--left .handle {
    right: 18px;
  }
  .elevator-door--right .handle {
    left: 18px;
  }
  .elevator-door--left::before {
    right: 10px;
  }
  .elevator-door--right::before {
    left: 10px;
  }
}

/* mobile: tone the heavier effects down */
@media only screen and (max-width: 767px) {
  .rts-single-project-one:hover,
  .single-case-wrapper:hover,
  .single-cta-area:hover,
  .single-fun-facts-one:hover {
    transform: none !important;
  }
}

/* ==========================================================================
   Mobile polish pass
   ========================================================================== */

/* hero "Call Us Now" pill: give the glass box proper inner spacing */
.button-area-banner .call-area {
  padding: 8px 20px 8px 8px;
}

/* inquiry submit spans the form width */
.rts-inquiry-form button[type="submit"] {
  max-width: none;
}

/* footer accordion toggle (only visible on phones) */
.ft-toggle {
  display: none;
}

@media only screen and (max-width: 767px) {
  /* header: smaller logo, tighter bar */
  .header-mid-one-wrapper {
    padding: 14px 0;
  }
  .header-mid-one-wrapper .logo-area img,
  .heder-two .header-two-container .header-main-wrapper .logo-area img {
    width: 110px;
    height: auto;
  }
  .header-mid-one-wrapper .header-right .single-component .menu-area .icon {
    width: 44px;
    height: 44px;
    border-radius: 10px;
  }

  /* hero: less dead space, smaller phone number */
  .rts-banner-one .banner-one-wrapper {
    padding-top: 30px !important;
    padding-bottom: 20px !important;
  }
  .rts-banner-one .banner-one-wrapper .title-banner {
    margin-bottom: 28px;
  }
  .rts-banner-one .banner-one-wrapper .button-area-banner {
    gap: 18px;
  }
  .rts-banner-one .banner-one-wrapper .call-area .icon i {
    width: 40px;
    height: 40px;
    font-size: 15px;
  }
  .rts-banner-one .banner-one-wrapper .call-area .detail span {
    font-size: 13px;
  }
  .rts-banner-one .banner-one-wrapper .call-area .detail a.number {
    font-size: 18px;
    line-height: 26px;
  }

  /* Latest / Premium Models: keep the slide inside the screen */
  .main-wrapper-case-swiper-tab {
    padding: 11px 16px 60px !important;
  }
  .main-wrapper-case-swiper-tab .swiper-slide.swiper-slide-active .single-case-wrapper,
  .single-case-wrapper {
    transform: none;
  }
  .single-case-wrapper .content {
    left: 12px;
    right: 12px;
    width: auto;
  }
  .main-wrapper-case-swiper-tab .swiper-slide.swiper-slide-active .single-case-wrapper .content {
    bottom: 12px !important;
  }
  .title-wrapper-casestudies-one {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .title-wrapper-casestudies-one .elecate-left-title {
    text-align: center;
    width: 100%;
  }
  .single-case-wrapper a img {
    height: 400px;
    object-fit: cover;
  }
  .case-tab-swipers .swiper-paginations {
    position: relative !important;
    bottom: auto !important;
    left: auto !important;
    margin: 22px auto 0;
    display: flex;
    justify-content: center;
  }
  .main-wrapper-case-swiper-tab {
    padding-bottom: 20px !important;
  }

  /* Projects Completed: 2 x 2 grid, centred content */
  .rts-fun-facts-area .elecate-left-title {
    text-align: center;
  }
  .rts-fun-facts-area .row.g-5 {
    --bs-gutter-x: 14px;
    --bs-gutter-y: 14px;
  }
  .rts-fun-facts-area .row.g-5 > [class*="col-"] {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .single-fun-facts-one {
    padding: 18px 10px;
    height: 100%;
  }
  .single-fun-facts-one .inner {
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
  .single-fun-facts-one .inner .icon {
    width: 56px;
    height: 56px;
    padding: 12px;
    margin-bottom: 12px;
  }
  .single-fun-facts-one .inner .title {
    font-size: 30px;
    line-height: 38px;
  }
  .single-fun-facts-one .inner p {
    font-size: 14px;
    margin: 0;
  }

  /* inquiry: the section already says "Get In Touch" */
  .rts-inquiry-area .inquiry-side .pre {
    display: none;
  }

  /* footer accordion */
  .main-footer-one-area .single-footer-inner + .single-footer-inner {
    border-top: 1px solid rgba(255, 255, 255, 0.08);
    padding-top: 18px;
  }
  .main-footer-one-area {
    gap: 18px !important;
  }
  .ft-accordion-title {
    display: flex !important;
    padding-bottom: 0 !important;
    min-height: 32px;
    align-items: center;
    justify-content: space-between;
    cursor: pointer;
    margin-bottom: 0 !important;
    -webkit-tap-highlight-color: transparent;
  }
  .ft-accordion-title::after {
    display: none !important;
  }
  .ft-toggle {
    display: inline-flex;
    position: relative;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    border: 1px solid rgba(255, 255, 255, 0.2);
    flex: 0 0 auto;
  }
  .ft-toggle::before,
  .ft-toggle::after {
    content: "";
    position: absolute;
    left: 50%;
    top: 50%;
    width: 12px;
    height: 2px;
    margin: -1px 0 0 -6px;
    background: var(--color-primary);
    transition: transform 0.3s var(--p3d-ease);
  }
  .ft-toggle::after {
    transform: rotate(90deg);
  }
  .single-footer-inner.is-open .ft-toggle::after {
    transform: rotate(0deg);
  }
  .main-footer-one-area .single-footer-inner + .single-footer-inner .body > :not(.footer-title) {
    display: none;
  }
  .main-footer-one-area .single-footer-inner.is-open .body > :not(.footer-title) {
    display: block;
    margin-top: 18px;
  }

  .main-footer-one-area.ptb--80 {
    padding-top: 50px !important;
    padding-bottom: 36px !important;
  }
  .main-footer-one-area .single-footer-inner + .single-footer-inner {
    padding-bottom: 2px;
  }
  .rts-footer-area .footer-logo img {
    width: 120px;
  }
  .copyright-area-one .wrapepr {
    padding-bottom: 44px;
  }
  /* scroll-to-top: smaller, out of the way */
  .progress-wrap {
    right: 14px;
    bottom: 14px;
    width: 40px;
    height: 40px;
  }
}

/* Touch screens have no real hover: stop tap-triggered lifts and zooms
   from sticking after the finger lifts. */
@media (hover: none) {
  .rts-btn:hover,
  .rts-single-project-one:hover,
  .single-case-wrapper:hover,
  .single-cta-area:hover,
  .single-fun-facts-one:hover,
  .rts-blog-arae .col-lg-4 > div:hover,
  .rts-single-wized .single-categories li a:hover,
  .header-mid-one-wrapper .logo-area:hover img,
  .rts-footer-area .footer-logo:hover {
    transform: none !important;
  }
  a:hover img,
  .thumbnail:hover img,
  .single-case-wrapper:hover a img,
  .single-case-wrapper a:hover img,
  .rts-single-project-one .thumbnail:hover img,
  .quick-info-item:hover .quick-info-icon,
  .single-fun-facts-one:hover .inner .icon img,
  .single-cta-area:hover .icon-area {
    transform: none !important;
    filter: none !important;
  }
  .rts-btn:hover::before {
    transform: translateX(-130%) !important;
  }
  .rts-btn.btn-primary:hover::after,
  .rts-btn.btn-seconday:hover::after,
  .rts-btn.btn-terciary:hover::after {
    transform: translateY(110%) !important;
  }
  .rts-single-wized .single-categories li:not(.active) a:hover {
    background: transparent;
    color: #5D666F;
  }
  a.quick-info-item:hover {
    background: transparent;
  }
}

/* announcement bar icon */
header.header-one .header-top-wrapper .left .icon i {
  color: var(--color-primary);
  font-size: 15px;
  filter: drop-shadow(0 0 6px rgba(255, 102, 0, 0.6));
}

/* Latest Blog: equal-height cards with the button pinned to the bottom,
   and one image shape for all three so a taller/shorter photo can't
   throw a card out of line */
.rts-blog-arae .row.g-5 > [class*="col-"] {
  display: flex;
}
.rts-blog-arae .col-lg-4 > div {
  display: flex;
  flex-direction: column;
  width: 100%;
}
.rts-blog-arae .col-lg-4 > div .thumbnail img {
  width: 100%;
  aspect-ratio: 16 / 11;
  object-fit: cover;
}
.rts-blog-arae .col-lg-4 > div .inner {
  flex: 1;
  display: flex;
  flex-direction: column;
}
.rts-blog-arae .col-lg-4 > div .inner .rts-btn {
  margin-top: auto;
}
.rts-blog-arae .col-lg-4 > div .inner a.title {
  margin-bottom: 20px;
}

@media only screen and (max-width: 767px) {
  /* theme containers only leave ~7px at the screen edge on phones */
  .container,
  .container-210,
  .container-cta {
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  /* About / Vision "Why Choose Us": two per row, compact */
  .service-about-wrapper .row > [class*="col-"] {
    flex: 0 0 50%;
    max-width: 50%;
  }
  .service-about-wrapper .row {
    --bs-gutter-x: 12px;
    --bs-gutter-y: 12px;
  }
  .single-service-sm {
    padding: 22px 10px;
    height: 100%;
  }
  .single-service-sm .icon img {
    max-width: 44px;
  }
  .single-service-sm p {
    font-size: 14px;
    margin-top: 10px;
  }

  /* About / Vision / Safety stats: 2 x 2, centred */
  .about-fun-facts-wrapper {
    display: grid !important;
    grid-template-columns: 1fr 1fr;
    gap: 28px 16px !important;
    align-items: start !important;
  }
  .single-funfacts-about {
    text-align: center;
  }
  .single-funfacts-about .top {
    flex-direction: column;
    gap: 12px;
    margin-bottom: 8px;
  }
  .single-funfacts-about .top .icon img {
    width: 56px;
  }
  .single-funfacts-about .top .title {
    font-size: 38px;
    line-height: 1.1;
  }
  .single-funfacts-about .top .title::after {
    right: -24px;
  }
  .single-funfacts-about .disc {
    font-size: 14px;
    line-height: 1.4;
  }
}

/* section labels ("Our Services", "Our latest Blog") in the site's
   orange eyebrow style, matching the other section headings */
.title-mid-wrapper-home-two span.pre {
  color: var(--color-primary) !important;
  font-family: var(--font-primary);
  font-weight: 700;
  font-size: 15px;
  letter-spacing: 0.12em;
  text-transform: uppercase;
}

@media only screen and (max-width: 767px) {
  /* About collage: keep the small photo inside the screen */
  .thumbnail-area-about img.small {
    right: 0;
    width: 46%;
  }
  /* stats: put the +/% suffix after the number, not over it */
  .single-funfacts-about .top .title::after {
    right: auto;
    left: 100%;
    margin-left: 2px;
  }
}

/* Phones don't render background-attachment: fixed properly (the panel
   shows mostly blank), so scroll it normally on small screens */
@media only screen and (max-width: 991px) {
  .rts-about-area-about.career .sustain-inner,
  .bg-dark-3 {
    background-attachment: scroll !important;
  }
  .rts-about-area-about.career .sustain-inner {
    padding: 110px 0 !important;
  }
}

/* announcement bar: the theme hides it below 1200px; keep it on tablets
   and phones (tagline only on phones, where the links won't fit) */
@media only screen and (max-width: 1199px) {
  header.header-one .header-top {
    display: block !important;
  }
}
@media only screen and (max-width: 767px) {
  header.header-one .header-top-wrapper {
    justify-content: center;
    padding: 9px 0;
  }
  header.header-one .header-top-wrapper .right {
    display: none;
  }
  header.header-one .header-top-wrapper .left {
    padding-right: 0;
  }
  header.header-one .header-top-wrapper .left::after {
    display: none;
  }
  header.header-one .header-top-wrapper .left p.disc {
    font-size: 13px;
    margin: 0;
  }
}
