/* ============================================================
   TECH JOINT SOLUTION — MODERN UI LAYER
   Loaded last so the generated multi-page site can share one
   maintainable visual system without duplicating page markup.
   ============================================================ */

:root{
  --header-h:84px;
  --wrap:1240px;
  --r-sm:10px;
  --r:14px;
  --r-lg:20px;
  --r-xl:28px;
  --shadow:0 18px 50px rgba(7,27,63,.10);
  --shadow-lg:0 30px 90px rgba(7,27,63,.18);
}

html{scroll-padding-top:calc(var(--header-h) + 18px)}
body{background:#fff;letter-spacing:-.005em}
body::before{
  content:"";position:fixed;inset:0;z-index:-20;pointer-events:none;
  background:
    radial-gradient(900px circle at 8% 2%,rgba(0,107,230,.055),transparent 58%),
    radial-gradient(700px circle at 95% 28%,rgba(0,183,244,.045),transparent 62%);
}
.wrap{width:min(var(--wrap),calc(100% - 48px))}
.section,.section--tight{position:relative;isolation:isolate}
.section{padding:110px 0}
.section--tight{padding:74px 0}
.section--alt{background:linear-gradient(180deg,#f7faff 0%,#eef5fc 100%)}
.section--light{background:linear-gradient(180deg,#f8fbff 0%,#f1f6fc 100%)}
.section--dark{background:
  radial-gradient(800px circle at 12% 5%,rgba(0,107,230,.14),transparent 60%),
  linear-gradient(180deg,#070a12 0%,#0b1220 100%)}

h1{font-size:clamp(2.55rem,5.4vw,5rem);line-height:1.01;letter-spacing:-.055em}
h2{font-size:clamp(2rem,3.8vw,3.35rem);line-height:1.08;letter-spacing:-.04em}
h3{letter-spacing:-.025em}
.lead{font-size:clamp(1.03rem,1.55vw,1.2rem);line-height:1.72}
.section-head{max-width:790px;margin-bottom:60px}
.section-head.left{max-width:690px}
.eyebrow{font-size:.74rem;letter-spacing:.13em;font-weight:600;margin-bottom:16px}
.eyebrow::before{content:"";display:inline-block;width:22px;height:1px;background:currentColor;vertical-align:middle;margin-right:9px;opacity:.6}

/* Buttons */
.btn{min-height:48px;border-radius:999px;padding:13px 25px;justify-content:center}
.btn--lg{min-height:56px;padding:16px 31px}
.btn--primary{box-shadow:0 14px 36px rgba(0,107,230,.30)}
.btn--primary:hover{box-shadow:0 18px 42px rgba(0,107,230,.42)}
.btn--ghost{background:rgba(255,255,255,.04);backdrop-filter:blur(10px)}
.section--light .btn--ghost,.section--alt .btn--ghost{background:#fff}

/* ============================================================
   HEADER
   ============================================================ */
.site-header{height:var(--header-h);padding:10px 0;background:transparent;border:0}
.site-header::before{
  content:"";position:absolute;inset:8px 20px;border-radius:22px;
  background:rgba(7,10,18,.56);border:1px solid rgba(255,255,255,.08);
  box-shadow:0 16px 50px rgba(0,0,0,.12);backdrop-filter:blur(18px) saturate(145%);
  -webkit-backdrop-filter:blur(18px) saturate(145%);opacity:.76;
  transition:inset .3s var(--ease),opacity .3s var(--ease),border-radius .3s var(--ease),background .3s var(--ease)
}
.site-header.scrolled::before{inset:0;background:rgba(7,10,18,.92);opacity:1;border-radius:0;border-inline:0;border-top:0}
.site-header.scrolled{background:transparent;border:0;box-shadow:none;backdrop-filter:none}
.site-header .wrap{position:relative;z-index:2}
.nav{height:64px;gap:22px}
.brand-logo--full{display:block;height:30px;max-width:250px;object-fit:contain}
.brand-logo--symbol{display:none}
.nav-links{gap:2px}
.nav-links > a,.nav-item > .nav-btn{position:relative;padding:10px 12px;color:#b5c0d1;font-size:.91rem;border-radius:999px}
.nav-links > a::before,.nav-item > .nav-btn::before{
  content:"";position:absolute;left:13px;right:13px;bottom:5px;height:2px;border-radius:2px;
  background:linear-gradient(90deg,var(--color-blue-primary),var(--color-cyan));transform:scaleX(0);transition:transform .25s var(--ease)
}
.nav-links > a:hover::before,.nav-links > a.active::before,.nav-links > a[aria-current="page"]::before,
.nav-item > .nav-btn:hover::before,.nav-item > .nav-btn.active::before{transform:scaleX(1)}
.nav-links > a:hover,.nav-item > .nav-btn:hover{background:rgba(255,255,255,.055)}
.nav-cta{gap:10px}
.nav-phone{display:inline-flex;align-items:center;gap:8px;color:#c2cbda;font-size:.84rem;font-weight:600;padding:10px 12px;border-radius:999px}
.nav-phone:hover{color:#fff;background:rgba(255,255,255,.055)}
.nav-cta .btn{min-height:44px;padding:11px 19px;font-size:.86rem}

.nav-drop{left:50%;width:min(720px,88vw);min-width:0;padding:12px;top:calc(100% + 15px);
  border-radius:22px;background:rgba(10,16,29,.97);border-color:rgba(255,255,255,.11);
  box-shadow:0 28px 80px rgba(0,0,0,.48);transform:translate(-50%,10px);backdrop-filter:blur(22px)}
.nav-item.open > .nav-drop{transform:translate(-50%,0)}
.nav-drop-layout{display:grid;grid-template-columns:210px 1fr;gap:12px}
.nav-drop-intro{border-radius:16px;padding:20px;background:
  radial-gradient(240px circle at 15% 0%,rgba(0,183,244,.20),transparent 65%),
  linear-gradient(145deg,rgba(0,107,230,.18),rgba(255,255,255,.025));border:1px solid rgba(255,255,255,.08)}
.nav-drop-intro small{display:block;font-family:var(--font-mono);font-size:.68rem;text-transform:uppercase;letter-spacing:.12em;color:var(--color-cyan);margin-bottom:9px}
.nav-drop-intro strong{display:block;color:#fff;font-family:var(--font-head);font-size:1.17rem;line-height:1.25;margin-bottom:9px}
.nav-drop-intro p{font-size:.79rem;line-height:1.55;color:#9ca8ba}
.nav-drop-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:5px}
.nav-drop a{position:relative;padding:10px 12px 10px 34px;border-radius:12px;color:#b5c0d1;font-size:.84rem}
.nav-drop a::before{content:"";position:absolute;left:14px;top:50%;width:7px;height:7px;border:1px solid var(--color-cyan);border-radius:2px;transform:translateY(-50%) rotate(45deg);opacity:.7}
.nav-drop a:hover{background:rgba(0,107,230,.14);color:#fff;transform:translateX(2px)}
.nav-drop a.all{grid-column:1/-1;padding:11px 14px;border:1px solid rgba(255,255,255,.08);margin:5px 0 0;text-align:center;background:rgba(255,255,255,.035)}
.nav-drop a.all::before{display:none}
.nav-mobile-cta{display:none}

/* ============================================================
   BREADCRUMBS + INNER PAGE HEROES
   ============================================================ */
.crumb-wrap{position:relative;z-index:2;background:#070a12;padding-top:calc(var(--header-h) + 18px)}
.crumb-wrap::after{content:"";position:absolute;inset:0;pointer-events:none;background:radial-gradient(500px circle at 85% 0%,rgba(0,107,230,.16),transparent 72%)}
.crumbs{position:relative;z-index:1;padding:11px 0 2px;margin:0;font-size:.7rem;letter-spacing:.04em}
.crumbs a,.crumbs .cur{color:#93a3b8}
.crumbs a:hover{color:#fff}
.crumb-wrap + .hero--page{padding-top:42px}

.hero--page{min-height:420px;padding:calc(var(--header-h) + 74px) 0 78px;background:
  radial-gradient(760px circle at 82% 2%,rgba(0,107,230,.23),transparent 60%),
  radial-gradient(620px circle at 12% 85%,rgba(0,183,244,.10),transparent 64%),
  linear-gradient(145deg,#070a12 0%,#0b1425 100%)}
.hero--page::after{content:"";position:absolute;inset:auto 0 0;height:120px;z-index:0;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(7,10,18,.36))}
.hero--page .wrap{position:relative;z-index:2}
.hero--page .wrap > div{position:relative;max-width:900px!important;padding-left:28px}
.hero--page .wrap > div::before{content:"";position:absolute;left:0;top:5px;bottom:5px;width:3px;border-radius:4px;background:linear-gradient(var(--color-cyan),var(--color-blue-primary));box-shadow:0 0 26px rgba(0,183,244,.32)}
.hero--page h1{font-size:clamp(2.45rem,5vw,4.7rem);max-width:16ch;margin-bottom:18px}
.hero--page .lead{max-width:65ch;color:#b5c0d1}
.hero--page .hero-actions{margin:28px 0 0}
.hero--page .meta-tags{margin-top:20px}
.hero--page .project-actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:26px}

/* ============================================================
   HOME VIDEO HERO
   ============================================================ */
.hero--video{min-height:max(760px,100svh);padding:calc(var(--header-h) + 76px) 0 94px;background:#070a12}
.hero--video::before{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:
  linear-gradient(180deg,rgba(7,10,18,.05) 0%,rgba(7,10,18,.18) 58%,#070a12 100%)}
.hero--video .wrap{z-index:4}
.hero--video .hero-inner{grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:64px}
.hero--video .hero-inner > div:first-child{max-width:720px;padding:34px 0}
.hero--video h1{font-size:clamp(3rem,6.2vw,6.15rem);max-width:11.5ch;text-shadow:0 8px 46px rgba(0,0,0,.48)}
.hero--video .sub{font-size:clamp(1.03rem,1.45vw,1.19rem);max-width:59ch;color:#bec8d7;text-shadow:0 2px 20px rgba(0,0,0,.65)}
.hero--video .hero-badge{background:rgba(7,10,18,.42);border-color:rgba(255,255,255,.18);color:#d2d9e4;backdrop-filter:blur(14px)}
.hero--video .hero-trust span{background:rgba(7,10,18,.38);border-color:rgba(255,255,255,.12);color:#c2ccda;backdrop-filter:blur(10px)}
.hero-video{background-color:#070a12;background-size:cover;background-position:center 48%;transform:translateZ(0)}
.hero-video-el{position:absolute;inset:-2%;width:104%;height:104%;max-width:none;object-fit:cover;object-position:center center;opacity:0;transform:scale(1.035);filter:saturate(.94) contrast(1.05);transition:opacity 1.1s var(--ease),transform 8s linear}
.hero-video-el.is-playing{opacity:.72;transform:scale(1.085)}
.hero-video::after{z-index:1;background:linear-gradient(120deg,rgba(5,9,17,.82) 0%,rgba(7,10,18,.56) 45%,rgba(4,18,43,.34) 76%,rgba(7,10,18,.60) 100%)}
.hero-video-scrim{z-index:2;background:
  linear-gradient(90deg,rgba(7,10,18,.92) 0%,rgba(7,10,18,.69) 38%,rgba(7,10,18,.24) 69%,rgba(7,10,18,.36) 100%),
  linear-gradient(180deg,rgba(7,10,18,.22) 0%,transparent 50%,rgba(7,10,18,.88) 100%)}
.hero--video .bg-grid{z-index:2;opacity:.34}
.hero--video .bg-logo-pattern{z-index:2;opacity:.14}
.hero--video .glow-orb{z-index:2}
.hero-scroll{z-index:5;bottom:25px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:rgba(7,10,18,.42);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px)}

/* Make the right-side animated visual feel like one premium glass module. */
.hero-stage{border:1px solid rgba(255,255,255,.10);border-radius:34px;background:rgba(7,10,18,.24);box-shadow:0 32px 100px rgba(0,0,0,.40);backdrop-filter:blur(8px);overflow:hidden}
.hero-stage::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(520px circle at 50% 30%,rgba(0,107,230,.18),transparent 67%)}

/* ============================================================
   CARDS, GRIDS, FORMS AND PORTFOLIO
   ============================================================ */
.grid{gap:24px}
.card,.step,.tcard,.faq-item,.info-row,.stat,.form-card,.featured-post,.post-card,.pcard{
  border-radius:24px;border-color:rgba(7,27,63,.105);box-shadow:0 18px 55px rgba(7,27,63,.075)
}
.card{padding:29px}
.card::before{border-radius:inherit}
.card:hover,.tcard:hover,.post-card:hover,.featured-post:hover{transform:translateY(-7px);box-shadow:0 28px 74px rgba(7,27,63,.14)}
.card .ic{width:50px;height:50px;border-radius:15px}
.card h3{font-size:1.25rem;margin-top:18px}
.card p{line-height:1.72}
.step{padding:32px}
.step .n{font-size:.72rem;letter-spacing:.12em}
.stats{border-radius:28px;overflow:hidden}
.stat{padding:38px 20px}
.stat .num{letter-spacing:-.05em}

.pgrid{gap:26px}
.pcard{overflow:hidden;background:#fff}
.pcard .ph{aspect-ratio:16/10}
.pcard .ph img{height:100%;width:100%;object-fit:cover}
.pcard .pb{padding:22px 23px 24px}
.project-cover{border-radius:30px;overflow:hidden;box-shadow:0 30px 90px rgba(7,27,63,.18);border:1px solid rgba(7,27,63,.1)}
.project-cover img{width:100%;height:auto}

.form-card{padding:38px;background:rgba(255,255,255,.90);backdrop-filter:blur(16px)}
.field input,.field select,.field textarea{min-height:52px;border-radius:13px;background:#f7faff;border-color:#d6e2ef;padding:13px 15px}
.field textarea{min-height:150px}
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 4px rgba(0,107,230,.11);background:#fff}

.faq-item{overflow:hidden;background:#fff}
.faq-q{padding:23px 24px}
.faq-a-inner{padding:0 24px 24px}
.article{max-width:820px}
.article h2{margin-top:54px}
.article p,.article li{font-size:1.02rem;line-height:1.86}

/* CTA bands */
.cta-band{border-radius:32px;padding:76px 38px;background:
  radial-gradient(540px circle at 15% 0%,rgba(0,183,244,.21),transparent 58%),
  linear-gradient(135deg,#07152d 0%,#0a3180 55%,#006be6 100%);border-color:rgba(255,255,255,.14);box-shadow:0 32px 90px rgba(7,27,63,.25)}
.cta-band::before{background:linear-gradient(120deg,rgba(255,255,255,.07),transparent 45%)}
.cta-band h2,.cta-band .lead{color:#fff}
.cta-band .lead{opacity:.82}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer{position:relative;isolation:isolate;margin:0;padding:0 0 28px;background:
  radial-gradient(850px circle at 92% 0%,rgba(0,107,230,.16),transparent 62%),
  linear-gradient(180deg,#080c15 0%,#05070d 100%);overflow:hidden}
.site-footer > .bg-logo-pattern{opacity:.025}
.site-footer .wrap{position:relative;z-index:2}
.foot-cta{position:relative;top:-1px;margin:0 0 64px;padding:54px 0;border-bottom:1px solid rgba(255,255,255,.10)}
.foot-cta-copy{max-width:670px}
.foot-cta-kicker{display:block;font-family:var(--font-mono);font-size:.72rem;letter-spacing:.13em;text-transform:uppercase;color:var(--color-cyan);margin-bottom:10px}
.foot-cta h2{font-size:clamp(1.8rem,3vw,3rem);max-width:18ch}
.foot-cta p{margin-top:10px;color:#98a6ba;font-size:.95rem}
.foot-grid{grid-template-columns:1.45fr .72fr 1.15fr 1.05fr;gap:56px;margin-bottom:58px}
.foot-logo{height:72px;max-width:275px;object-fit:contain;margin-bottom:22px}
.foot-about p{max-width:39ch;line-height:1.75}
.foot-col h4{color:#dce4ef;font-size:.72rem;letter-spacing:.13em}
.foot-col a{position:relative;width:max-content;max-width:100%;padding:6px 0;color:#9eabba}
.foot-col a::after{content:"";position:absolute;left:0;bottom:3px;width:100%;height:1px;background:var(--color-cyan);transform:scaleX(0);transform-origin:right;transition:transform .25s var(--ease)}
.foot-col a:hover::after{transform:scaleX(1);transform-origin:left}
.foot-contact-card{padding:18px;border-radius:18px;border:1px solid rgba(255,255,255,.09);background:rgba(255,255,255,.035)}
.foot-contact-card a{width:100%}
.foot-contact-card a::after{display:none}
.foot-soc a{border-radius:50%;background:rgba(255,255,255,.025)}
.foot-bottom{padding-top:25px}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1120px){
  .nav-phone{display:none}
  .hero--video .hero-inner{grid-template-columns:1fr .78fr;gap:32px}
  .hero--video h1{font-size:clamp(3rem,6vw,5.2rem)}
  .foot-grid{grid-template-columns:1.2fr .8fr 1fr;gap:38px}
  .foot-grid .foot-col:last-child{grid-column:1/-1}
}

@media (max-width:920px){
  :root{--header-h:76px}
  .wrap{width:min(var(--wrap),calc(100% - 34px))}
  .site-header{padding:7px 0}
  .site-header::before{inset:7px 10px;border-radius:18px}
  .nav{height:62px}
  .brand-logo--full{display:none}
  .brand-logo--symbol{display:block;height:38px}
  .nav-links{position:fixed;left:12px;right:12px;top:84px;bottom:auto;width:auto;max-height:calc(100svh - 98px);overflow:auto;padding:14px;
    border-radius:22px;background:rgba(7,10,18,.98);border:1px solid rgba(255,255,255,.10);box-shadow:0 26px 80px rgba(0,0,0,.55);backdrop-filter:blur(24px);transform:translateY(-12px) scale(.98);transform-origin:top;z-index:105}
  .nav-links.open{transform:none}
  .nav-links > a,.nav-item > .nav-btn{border-radius:12px;padding:13px 14px}
  .nav-links > a::before,.nav-item > .nav-btn::before{display:none}
  .nav-drop{position:static;width:auto;display:none;transform:none!important;padding:7px;margin:4px 0 8px 10px;border-radius:16px;background:rgba(255,255,255,.035)}
  .nav-item.open > .nav-drop{display:block}
  .nav-drop-layout{grid-template-columns:1fr}
  .nav-drop-intro{display:none}
  .nav-drop-grid{grid-template-columns:1fr}
  .nav-drop a{padding:10px 12px 10px 33px}
  .nav-mobile-cta{display:flex!important;margin-top:9px}
  .nav-mobile-cta .btn{width:100%}
  body.menu-open{overflow:hidden}

  .hero--video{min-height:760px;padding-top:calc(var(--header-h) + 74px)}
  .hero--video .hero-inner{grid-template-columns:1fr}
  .hero--video .hero-inner > div:first-child{max-width:740px;padding:25px 0}
  .hero--video .hero-stage{display:none}
  .hero-video{background-position:58% center}
  .hero-video-scrim{background:
    linear-gradient(90deg,rgba(7,10,18,.88),rgba(7,10,18,.54)),
    linear-gradient(180deg,rgba(7,10,18,.18),rgba(7,10,18,.85))}
  .hero--page{min-height:380px}
  .section{padding:84px 0}
  .section--tight{padding:64px 0}
  .foot-grid{grid-template-columns:1fr 1fr}
  .foot-grid .foot-col:last-child{grid-column:auto}
}

@media (max-width:640px){
  .wrap{width:min(var(--wrap),calc(100% - 28px))}
  h1{font-size:clamp(2.45rem,12vw,3.8rem)}
  h2{font-size:clamp(1.85rem,9vw,2.6rem)}
  .section{padding:70px 0}
  .section--tight{padding:52px 0}
  .section-head{margin-bottom:38px}
  .crumb-wrap{padding-top:calc(var(--header-h) + 10px)}
  .crumbs{white-space:nowrap;overflow:auto;flex-wrap:nowrap;padding-bottom:8px;scrollbar-width:none}
  .crumbs::-webkit-scrollbar{display:none}
  .crumb-wrap + .hero--page{padding-top:32px}
  .hero--page{min-height:350px;padding:calc(var(--header-h) + 52px) 0 58px}
  .hero--page .wrap > div{padding-left:18px}
  .hero--page h1{font-size:clamp(2.25rem,11vw,3.5rem)}
  .hero--video{min-height:720px;padding:calc(var(--header-h) + 58px) 0 72px}
  .hero--video h1{font-size:clamp(2.65rem,13vw,4.25rem)}
  .hero--video .sub{font-size:1rem}
  .hero--video .hero-inner > div:first-child{padding:8px 0}
  .hero--video .hero-trust{gap:7px}
  .hero--video .hero-trust span{font-size:.78rem;padding:6px 10px}
  .hero-video{background-position:64% center}
  .hero-video-el{display:none}
  .card,.step{padding:24px}
  .form-card{padding:24px 19px}
  .cta-band{padding:58px 21px;border-radius:25px}
  .project-cover{border-radius:20px}
  .foot-cta{align-items:flex-start;padding:48px 0;margin-bottom:46px}
  .foot-grid{grid-template-columns:1fr;gap:34px}
  .foot-grid .foot-col:last-child{grid-column:auto}
  .foot-bottom{flex-direction:column}
}

@media (prefers-reduced-motion:reduce){
  .hero-video-el{display:none}
  .card:hover,.tcard:hover,.post-card:hover,.featured-post:hover{transform:none}
}

/* Preserve the supplied footer lockup aspect ratio at a readable size. */
.foot-logo{width:min(100%,310px);height:auto;max-width:none}
