/*
Theme Name: Xtreme Thoughts Softtech
Theme URI: https://xtremethoughts.com
Author: Xtreme Thoughts Softtech
Author URI: https://xtremethoughts.com
Description: Custom one-page WordPress theme for Xtreme Thoughts Softtech — software, web, mobile & product engineering, Surat, India.
Version: 1.0.0
Requires at least: 5.9
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: xtreme-thoughts
*/

:root{
  --teal:#0693A3; --teal-dark:#057180; --navy:#0A2530; --navy-deep:#071A22;
  --orange:#FF6700; --orange-dark:#E85A00; --gold:#F9B800; --ink:#0B1F26; --mist:#F7F9FA;
}
html{ scroll-behavior:smooth; }
body{ font-family:'Inter',sans-serif; color:var(--ink); background:#fff; overflow-x:hidden; }
h1,h2,h3,h4,.font-display{ font-family:'Space Grotesk',sans-serif; }
.font-mono{ font-family:'IBM Plex Mono',monospace; }
::selection{ background:var(--teal); color:#fff; }

#scroll-progress{ position:fixed; top:0; left:0; height:3px; background:linear-gradient(90deg,var(--orange),var(--gold),var(--teal)); z-index:9999; width:0%; transition:width .1s linear; }

.reveal{ opacity:0; transform:translateY(28px); transition:opacity .8s cubic-bezier(.16,.84,.44,1), transform .8s cubic-bezier(.16,.84,.44,1); }
.reveal.in{ opacity:1; transform:translateY(0); }
.reveal-delay-1.in{ transition-delay:.08s; } .reveal-delay-2.in{ transition-delay:.16s; }
.reveal-delay-3.in{ transition-delay:.24s; } .reveal-delay-4.in{ transition-delay:.32s; }

@keyframes floaty{ 0%,100%{ transform:translateY(0px) rotate(var(--r,0deg)); } 50%{ transform:translateY(-14px) rotate(var(--r,0deg)); } }
.floaty{ animation:floaty 6s ease-in-out infinite; }
.floaty-slow{ animation:floaty 8s ease-in-out infinite; }
.floaty-delay{ animation-delay:1.2s; }

@keyframes beamShift{ 0%{ transform:translate3d(0,0,0) rotate(28deg); } 100%{ transform:translate3d(60px,40px,0) rotate(28deg); } }
@keyframes beamShift2{ 0%{ transform:translate3d(0,0,0) rotate(-28deg); } 100%{ transform:translate3d(-50px,30px,0) rotate(-28deg); } }
.beam-a{ animation:beamShift 14s ease-in-out infinite alternate; }
.beam-b{ animation:beamShift2 16s ease-in-out infinite alternate; }

.grad-text{ background:linear-gradient(92deg,var(--orange) 0%, var(--gold) 45%, var(--teal) 100%); -webkit-background-clip:text; background-clip:text; color:transparent; }

.btn-primary{ position:relative; overflow:hidden; background:var(--orange); color:#fff; }
.btn-primary:hover{ background:var(--orange-dark); }
.btn-ripple::after{ content:''; position:absolute; inset:0; background:radial-gradient(circle at var(--x,50%) var(--y,50%), rgba(255,255,255,.35), transparent 60%); opacity:0; transition:opacity .4s; }
.btn-ripple:active::after{ opacity:1; transition:opacity 0s; }

.card-hover{ transition:transform .45s cubic-bezier(.16,.84,.44,1), box-shadow .45s ease, border-color .3s ease; }
.card-hover:hover{ box-shadow:0 30px 60px -20px rgba(10,37,48,.22); }

/* Flip card (team members) — grid-stacked faces so the card auto-sizes to the taller face */
.flip-card{ perspective:1800px; outline:none; }
.flip-card-inner{ display:grid; transition:transform .8s cubic-bezier(.16,.84,.44,1); transform-style:preserve-3d; }
.flip-card:hover .flip-card-inner, .flip-card.is-flipped .flip-card-inner, .flip-card:focus-within .flip-card-inner{ transform:rotateY(180deg); }
.flip-card-front, .flip-card-back{ grid-area:1/1; width:100%; height:100%; backface-visibility:hidden; -webkit-backface-visibility:hidden; overflow:hidden; }
.flip-card-back{ transform:rotateY(180deg); background:var(--navy); }

.glass{ background:rgba(255,255,255,.06); backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px); border:1px solid rgba(255,255,255,.14); }

.nav-link{ position:relative; }
.nav-link::after{ content:''; position:absolute; left:0; bottom:-6px; width:0%; height:2px; background:var(--orange); transition:width .3s ease; }
.nav-link:hover::after{ width:100%; }

.dropdown{ opacity:0; visibility:hidden; transform:translateY(8px); transition:opacity .25s ease, transform .25s ease, visibility .25s; }
.nav-item:hover .dropdown{ opacity:1; visibility:visible; transform:translateY(0); }

.counter{ font-variant-numeric:tabular-nums; }

.timeline-line{ transform-origin:left center; transform:scaleX(0); transition:transform 1.4s cubic-bezier(.16,.84,.44,1); }
.timeline-line.in{ transform:scaleX(1); }

.faq-body{ max-height:0; overflow:hidden; transition:max-height .4s ease; }
.faq-item.open .faq-body{ max-height:400px; }
.faq-item.open .faq-icon{ transform:rotate(45deg); }
.faq-icon{ transition:transform .3s ease; }
.faq-item.open .job-toggle-icon{ transform:rotate(90deg); }

.apply-modal{ display:none; }
.apply-modal.is-open{ display:flex; }
.apply-modal-backdrop{ opacity:0; transition:opacity .3s ease; }
.apply-modal.is-open .apply-modal-backdrop{ opacity:1; }
.apply-modal-panel{ opacity:0; transform:translateY(16px) scale(.98); transition:opacity .3s ease, transform .3s cubic-bezier(.16,.84,.44,1); scrollbar-width:thin; scrollbar-color:rgba(10,37,48,.25) transparent; }
.apply-modal.is-open .apply-modal-panel{ opacity:1; transform:translateY(0) scale(1); }
.apply-modal-panel::-webkit-scrollbar{ width:6px; }
.apply-modal-panel::-webkit-scrollbar-track{ background:transparent; }
.apply-modal-panel::-webkit-scrollbar-thumb{ background:rgba(10,37,48,.2); border-radius:999px; }
body.modal-open{ overflow:hidden; }

.no-scrollbar{ scrollbar-width:none; -ms-overflow-style:none; }
.no-scrollbar::-webkit-scrollbar{ display:none; }

.dot-grid{ background-image:radial-gradient(rgba(6,147,163,.18) 1px, transparent 1px); background-size:22px 22px; }
.dot-grid-light{ background-image:radial-gradient(rgba(255,255,255,.18) 1px, transparent 1px); background-size:22px 22px; }

@keyframes marquee{ 0%{ transform:translateX(0); } 100%{ transform:translateX(-50%); } }
.marquee-track{ animation:marquee 26s linear infinite; }
@keyframes marquee2{ 0%{ transform:translateX(-50%); } 100%{ transform:translateX(0); } }
.marquee-track-rev{ animation:marquee2 32s linear infinite; }

#back-to-top{ opacity:0; pointer-events:none; transition:opacity .3s ease, transform .3s ease; transform:translateY(12px); }
#back-to-top.show{ opacity:1; pointer-events:auto; transform:translateY(0); }

.capsule{ border-radius:9999px; }

#loader{ position:fixed; inset:0; z-index:99999; background:var(--navy-deep); display:flex; align-items:center; justify-content:center; transition:opacity .6s ease, visibility .6s ease; }
#loader.hide{ opacity:0; visibility:hidden; }
@keyframes xspin{ 0%{ transform:rotate(0deg) scale(1); } 50%{ transform:rotate(180deg) scale(1.08); } 100%{ transform:rotate(360deg) scale(1); } }
.loader-mark{ animation:xspin 1.6s cubic-bezier(.65,0,.35,1) infinite; }

/* GPS route signature animation (hero) */
.route-dash{ stroke-dasharray:6 10; animation:dashmove 2.4s linear infinite; }
@keyframes dashmove{ to{ stroke-dashoffset:-160; } }
@keyframes pulse-dot{ 0%{ transform:scale(.9); opacity:1; } 70%{ transform:scale(2.4); opacity:0; } 100%{ opacity:0; } }
.pulse-ring{ animation:pulse-dot 2.2s cubic-bezier(.4,0,.6,1) infinite; }

@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; }
}

.noise-overlay::before{
  content:''; position:absolute; inset:0; opacity:.035; pointer-events:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* WordPress core alignment helpers (kept for compatibility) */
.alignleft{ float:left; margin-right:1.5em; }
.alignright{ float:right; margin-left:1.5em; }
.aligncenter{ display:block; margin-left:auto; margin-right:auto; }
.screen-reader-text{ position:absolute !important; clip:rect(1px,1px,1px,1px); width:1px; height:1px; overflow:hidden; }

/* Contact form status messages (server-driven, replaces the old JS-only success text) */
#form-status{ display:none; }
#form-status.show{ display:block; }
#form-status.success{ color:var(--teal-dark); }
#form-status.error{ color:#c0392b; }

/* Careers application form status messages */
#careers-form-status{ display:none; }
#careers-form-status.show{ display:block; }
#careers-form-status.success{ color:#5eead4; }
#careers-form-status.error{ color:#f87171; }
