/* ==========================================================================
   Page & section components
   ========================================================================== */

/* --- Hero (home) --- */
.hero{
  background:var(--grad-hero);
  min-height:100vh;
  display:flex;align-items:center;
  padding-top:var(--header-h);
  position:relative;overflow:hidden;
  color:#fff;
}
#particleCanvas{position:absolute;inset:0;width:100%;height:100%;opacity:.55;}
.hero-grid{position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:52px 52px;mask-image:radial-gradient(ellipse 70% 60% at 50% 30%,black 20%,transparent 75%);}
.hero-inner{position:relative;z-index:2;display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center;padding:70px 0 40px;}
.hero-copy .eyebrow{margin-bottom:20px;}
.hero-title{color:#fff;margin-bottom:22px;}
.hero-title .accent{background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;}
.type-cursor{display:inline-block;width:3px;background:var(--cyan-400);margin-left:3px;animation:blink 1s step-end infinite;}
@keyframes blink{50%{opacity:0;}}
.hero-copy .lead{max-width:520px;margin-bottom:34px;}
.hero-cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-bottom:44px;}
.hero-trust{display:flex;gap:28px;flex-wrap:wrap;}
.hero-trust div{display:flex;flex-direction:column;}
.hero-trust strong{font-family:var(--font-display);font-size:1.6rem;color:#fff;}
.hero-trust span{font-size:.78rem;color:rgba(255,255,255,.5);font-family:var(--font-mono);}

.hero-visual{position:relative;display:flex;align-items:center;justify-content:center;}
.hero-panel{
  width:100%;aspect-ratio:1/1;max-width:460px;position:relative;
}
.orbit-ring{position:absolute;border:1px solid rgba(255,255,255,.12);border-radius:50%;top:50%;left:50%;transform:translate(-50%,-50%);}
.orbit-ring.r1{width:100%;height:100%;}
.orbit-ring.r2{width:74%;height:74%;border-style:dashed;}
.hero-card-float{
  position:absolute;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.15);
  backdrop-filter:blur(14px);border-radius:16px;padding:14px 16px;display:flex;align-items:center;gap:11px;
  animation:floatY 5s ease-in-out infinite;box-shadow:0 20px 40px rgba(0,0,0,.3);
}
.hero-card-float svg{width:20px;height:20px;color:var(--cyan-400);flex-shrink:0;}
.hero-card-float strong{display:block;font-size:.82rem;color:#fff;}
.hero-card-float span{font-size:.7rem;color:rgba(255,255,255,.5);}
.hero-card-float.f1{top:6%;left:-4%;animation-delay:0s;}
.hero-card-float.f2{bottom:14%;right:-6%;animation-delay:1.2s;}
.hero-card-float.f3{bottom:-2%;left:12%;animation-delay:2.4s;}
@keyframes floatY{0%,100%{transform:translateY(0);}50%{transform:translateY(-14px);}}
.hero-center-badge{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:56%;display:flex;align-items:center;justify-content:center;}
.hero-center-badge img{width:100%;filter:drop-shadow(0 0 40px rgba(37,99,235,.5));}

.scroll-cue{position:absolute;bottom:26px;left:50%;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;gap:8px;color:rgba(255,255,255,.5);font-family:var(--font-mono);font-size:.68rem;letter-spacing:.1em;z-index:2;}
.scroll-cue .mouse{width:22px;height:34px;border:1.5px solid rgba(255,255,255,.4);border-radius:12px;position:relative;}
.scroll-cue .mouse::before{content:'';position:absolute;top:6px;left:50%;width:3px;height:7px;background:var(--cyan-400);border-radius:2px;transform:translateX(-50%);animation:scrollDown 1.6s ease infinite;}
@keyframes scrollDown{0%{opacity:1;top:6px;}100%{opacity:0;top:16px;}}

/* --- Stats bar --- */
.stats-bar{background:var(--navy-900);padding:56px 0;position:relative;}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;text-align:center;}
.stat-item strong{display:block;font-family:var(--font-display);font-size:clamp(2rem,3.6vw,2.9rem);color:#fff;}
.stat-item span{font-size:.82rem;color:rgba(255,255,255,.5);font-family:var(--font-mono);letter-spacing:.04em;}

/* --- Intro / split --- */
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center;}
.split-media{position:relative;border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg);}
.split-media img{width:100%;height:100%;object-fit:cover;}
.split-media-badge{position:absolute;bottom:22px;left:22px;background:#fff;border-radius:16px;padding:14px 18px;box-shadow:var(--shadow-md);display:flex;align-items:center;gap:12px;}
.split-media-badge svg{width:30px;height:30px;color:var(--blue-600);}
.split-media-badge strong{display:block;font-family:var(--font-display);font-size:1.3rem;color:var(--navy-950);}
.split-media-badge span{font-size:.72rem;color:var(--slate-500);}
.check-list li{display:flex;gap:12px;align-items:flex-start;padding:10px 0;}
.check-list svg{width:20px;height:20px;color:var(--success);flex-shrink:0;margin-top:2px;}
.check-list strong{color:var(--navy-950);display:block;font-size:.95rem;}
.check-list span{font-size:.86rem;color:var(--slate-500);}

/* --- Why choose us --- */
.why-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;}
.why-card{padding:32px 26px;text-align:left;}
.why-icon{width:52px;height:52px;border-radius:14px;background:var(--grad-brand);display:flex;align-items:center;justify-content:center;margin-bottom:20px;}
.why-icon svg{width:25px;height:25px;color:#fff;}
.why-card h3{font-size:1.08rem;margin-bottom:8px;}
.why-card p{font-size:.9rem;}

/* --- Services grid --- */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.service-card{padding:30px 26px;position:relative;overflow:hidden;}
.service-card .num{position:absolute;top:20px;right:24px;font-family:var(--font-mono);font-size:.72rem;color:var(--slate-300);}
.service-icon{width:50px;height:50px;border-radius:13px;background:var(--ice-100);display:flex;align-items:center;justify-content:center;margin-bottom:18px;transition:background .3s,transform .3s;}
.service-icon svg{width:24px;height:24px;color:var(--blue-600);}
.service-card:hover .service-icon{background:var(--grad-brand);transform:scale(1.08) rotate(-4deg);}
.service-card:hover .service-icon svg{color:#fff;}
.service-card h3{font-size:1.08rem;margin-bottom:8px;}
.service-card p{font-size:.88rem;margin-bottom:16px;}
.service-link{display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:600;color:var(--blue-600);}
.service-link svg{width:14px;height:14px;transition:transform .25s;}
.service-card:hover .service-link svg{transform:translateX(4px);}

/* --- Process / how we work --- */
.process-row{display:grid;grid-template-columns:repeat(4,1fr);gap:0;position:relative;}
.process-step{padding:0 20px;position:relative;text-align:center;}
.process-step .step-num{
  width:64px;height:64px;border-radius:50%;background:#fff;border:2px solid var(--ice-200);
  display:flex;align-items:center;justify-content:center;margin:0 auto 20px;font-family:var(--font-display);
  font-weight:700;font-size:1.3rem;color:var(--blue-600);position:relative;z-index:2;transition:all .3s;
}
.process-step:hover .step-num{background:var(--grad-brand);color:#fff;border-color:transparent;transform:scale(1.08);}
.process-track{position:absolute;top:32px;left:12%;right:12%;height:2px;background:var(--ice-200);z-index:1;}
.process-step h4{margin-bottom:8px;font-size:1rem;}
.process-step p{font-size:.85rem;}

/* --- Industries --- */
.industries-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.industry-chip{
  padding:26px 18px;text-align:center;border-radius:var(--r-md);background:var(--ice-50);border:1px solid var(--ice-200);
  transition:all .35s var(--ease);
}
.industry-chip:hover{background:var(--grad-brand);transform:translateY(-4px);}
.industry-chip:hover *{color:#fff !important;}
.industry-chip svg{width:30px;height:30px;color:var(--blue-600);margin:0 auto 12px;}
.industry-chip span{font-size:.85rem;font-weight:600;color:var(--navy-950);}

/* --- Brand slider (logos) --- */
.logo-slider-wrap{overflow:hidden;position:relative;mask-image:linear-gradient(90deg,transparent,black 10%,black 90%,transparent);}
.logo-track{display:flex;gap:64px;width:max-content;animation:scrollLeft 26s linear infinite;align-items:center;}
.logo-track img,.logo-track .brand-tag{height:30px;opacity:.55;filter:grayscale(1);transition:opacity .3s,filter .3s;}
.logo-track .brand-tag{display:flex;align-items:center;font-family:var(--font-display);font-weight:700;font-size:1.2rem;color:var(--slate-500);height:auto;}
.logo-track .brand-tag:hover{opacity:1;filter:none;color:var(--navy-950);}
@keyframes scrollLeft{to{transform:translateX(-50%);}}

/* --- Testimonials --- */
.testi-slider{position:relative;overflow:hidden;}
.testi-track{display:flex;transition:transform .6s var(--ease);}
.testi-slide{flex:0 0 100%;padding:4px;}
.testi-card{max-width:720px;margin-inline:auto;text-align:center;padding:48px 40px;}
.testi-card .stars{display:flex;justify-content:center;gap:4px;margin-bottom:20px;color:#f5b301;}
.testi-card .stars svg{width:18px;height:18px;}
.testi-quote{font-family:var(--font-display);font-size:1.3rem;color:var(--navy-950);line-height:1.5;margin-bottom:26px;}
.testi-person{display:flex;align-items:center;justify-content:center;gap:12px;}
.testi-avatar{width:48px;height:48px;border-radius:50%;background:var(--grad-brand);display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-family:var(--font-display);}
.testi-person strong{display:block;font-size:.92rem;color:var(--navy-950);}
.testi-person span{font-size:.78rem;color:var(--slate-500);}
.testi-nav{display:flex;justify-content:center;gap:10px;margin-top:28px;}
.testi-dot{width:9px;height:9px;border-radius:50%;background:var(--ice-200);transition:all .3s;}
.testi-dot.active{width:26px;border-radius:6px;background:var(--blue-600);}
.testi-arrow{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:#fff;box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;z-index:3;}
.testi-arrow.prev{left:0;}.testi-arrow.next{right:0;}
.testi-arrow svg{width:18px;height:18px;color:var(--navy-950);}

/* --- Projects / portfolio --- */
.projects-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}
.project-card{position:relative;border-radius:var(--r-lg);overflow:hidden;aspect-ratio:4/3;cursor:pointer;}
.project-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease);}
.project-card:hover img{transform:scale(1.08);}
.project-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(5,10,22,.92) 0%,rgba(5,10,22,.1) 55%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:22px;color:#fff;}
.project-overlay span{font-family:var(--font-mono);font-size:.7rem;color:var(--cyan-400);letter-spacing:.08em;text-transform:uppercase;}
.project-overlay h4{color:#fff;margin-top:5px;font-size:1.05rem;}

/* --- CTA band --- */
.cta-band{background:var(--grad-cta);border-radius:var(--r-xl);padding:64px 56px;position:relative;overflow:hidden;color:#fff;}
.cta-band-inner{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:40px;flex-wrap:wrap;}
.cta-band h2{color:#fff;max-width:480px;}
.cta-band p{color:rgba(255,255,255,.72);margin-top:10px;max-width:440px;}
.cta-band-actions{display:flex;gap:14px;flex-wrap:wrap;}

/* --- Blog cards --- */
.blog-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
.blog-card{overflow:hidden;}
.blog-thumb{aspect-ratio:16/10;overflow:hidden;}
.blog-thumb img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.blog-card:hover .blog-thumb img{transform:scale(1.06);}
.blog-body{padding:22px 24px 26px;}
.blog-meta{display:flex;gap:14px;font-family:var(--font-mono);font-size:.72rem;color:var(--slate-500);margin-bottom:12px;}
.blog-body h3{font-size:1.05rem;margin-bottom:10px;line-height:1.35;}
.blog-body h3 a:hover{color:var(--blue-600);}
.blog-body p{font-size:.87rem;}
.blog-readmore{margin-top:14px;display:inline-flex;align-items:center;gap:6px;font-size:.84rem;font-weight:600;color:var(--blue-600);}

/* --- FAQ accordion --- */
.faq-list{max-width:800px;margin-inline:auto;display:flex;flex-direction:column;gap:12px;}
.faq-item{background:#fff;border:1px solid var(--ice-200);border-radius:var(--r-md);overflow:hidden;}
.faq-q{width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 24px;text-align:left;font-weight:600;color:var(--navy-950);font-size:.98rem;}
.faq-q svg{width:20px;height:20px;flex-shrink:0;transition:transform .35s var(--ease);color:var(--blue-600);}
.faq-item.open .faq-q svg{transform:rotate(45deg);}
.faq-a{max-height:0;overflow:hidden;transition:max-height .4s var(--ease);}
.faq-a-inner{padding:0 24px 22px;font-size:.9rem;color:var(--slate-600);}
.faq-tabs{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-bottom:36px;}
.faq-tab{padding:10px 18px;border-radius:var(--r-pill);font-size:.85rem;font-weight:600;background:var(--ice-100);color:var(--slate-600);}
.faq-tab.active{background:var(--grad-brand);color:#fff;}

/* --- Map --- */
.map-wrap{border-radius:var(--r-xl);overflow:hidden;box-shadow:var(--shadow-lg);position:relative;height:440px;}
.map-wrap iframe{width:100%;height:100%;border:0;filter:grayscale(.25) contrast(1.05);}
.map-card{position:absolute;top:24px;left:24px;background:#fff;border-radius:16px;padding:20px 22px;box-shadow:var(--shadow-lg);max-width:270px;z-index:2;}
.map-card h4{font-size:.95rem;margin-bottom:6px;}
.map-card p{font-size:.83rem;}

/* --- Forms --- */
.form-panel{background:#fff;border-radius:var(--r-xl);box-shadow:var(--shadow-lg);padding:42px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px;}
.field{margin-bottom:18px;position:relative;}
.field label{display:block;font-size:.82rem;font-weight:600;color:var(--navy-950);margin-bottom:7px;}
.field .req{color:var(--danger);}
.field input,.field select,.field textarea{
  width:100%;padding:13px 16px;border-radius:12px;border:1.5px solid var(--ice-200);background:var(--ice-50);
  font-size:.92rem;transition:border-color .25s,background .25s;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--blue-500);background:#fff;}
.field textarea{resize:vertical;min-height:110px;}
.field-error{color:var(--danger);font-size:.76rem;margin-top:6px;display:none;}
.field.invalid input,.field.invalid select,.field.invalid textarea{border-color:var(--danger);}
.field.invalid .field-error{display:block;}
.field-hint{font-size:.74rem;color:var(--slate-500);margin-top:6px;}
.consent-row{display:flex;align-items:flex-start;gap:10px;margin-bottom:20px;}
.consent-row input{width:17px;height:17px;margin-top:3px;accent-color:var(--blue-600);flex-shrink:0;}
.consent-row label{font-size:.82rem;color:var(--slate-500);}
.honeypot{position:absolute;left:-9999px;opacity:0;height:0;width:0;pointer-events:none;}

/* --- Pagination --- */
.pagination{display:flex;justify-content:center;gap:8px;margin-top:48px;}
.page-btn{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:.86rem;font-weight:600;background:var(--ice-100);color:var(--slate-600);}
.page-btn.active{background:var(--grad-brand);color:#fff;}
.page-btn:hover:not(.active){background:var(--ice-200);}

/* --- Gallery --- */
.gallery-filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-bottom:36px;}
.gallery-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;grid-auto-flow:dense;}
.gallery-item{border-radius:var(--r-md);overflow:hidden;cursor:pointer;position:relative;aspect-ratio:1/1;}
.gallery-item.tall{grid-row:span 2;aspect-ratio:1/2.1;}
.gallery-item.wide{grid-column:span 2;aspect-ratio:2.1/1;}
.gallery-item img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease);}
.gallery-item:hover img{transform:scale(1.09);}
.gallery-item .g-zoom{position:absolute;inset:0;background:rgba(5,10,22,.35);opacity:0;display:flex;align-items:center;justify-content:center;transition:opacity .3s;}
.gallery-item:hover .g-zoom{opacity:1;}
.gallery-item .g-zoom svg{width:30px;height:30px;color:#fff;}

#lightbox{position:fixed;inset:0;z-index:1400;background:rgba(4,8,18,.95);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s;padding:40px;}
#lightbox.open{opacity:1;pointer-events:auto;}
#lightbox img{max-width:90vw;max-height:82vh;border-radius:14px;box-shadow:0 30px 80px rgba(0,0,0,.5);}
#lightbox .lb-close{position:absolute;top:26px;right:30px;color:#fff;width:44px;height:44px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;}
#lightbox .lb-arrow{position:absolute;top:50%;transform:translateY(-50%);color:#fff;width:50px;height:50px;border-radius:50%;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;}
#lightbox .lb-prev{left:24px;}#lightbox .lb-next{right:24px;}
#lightbox .lb-caption{position:absolute;bottom:30px;left:0;right:0;text-align:center;color:rgba(255,255,255,.7);font-size:.85rem;font-family:var(--font-mono);}

/* --- Video popup --- */
.video-card{position:relative;border-radius:var(--r-xl);overflow:hidden;cursor:pointer;aspect-ratio:16/9;}
.video-card img{width:100%;height:100%;object-fit:cover;}
.video-play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:rgba(5,10,22,.35);}
.video-play span{width:84px;height:84px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;box-shadow:0 20px 40px rgba(0,0,0,.3);transition:transform .3s;}
.video-card:hover .video-play span{transform:scale(1.1);}
.video-play svg{width:28px;height:28px;color:var(--blue-600);margin-left:4px;}
#videoModal{position:fixed;inset:0;z-index:1400;background:rgba(4,8,18,.95);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .35s;padding:20px;}
#videoModal.open{opacity:1;pointer-events:auto;}
.video-frame-wrap{width:min(900px,92vw);aspect-ratio:16/9;position:relative;background:#000;border-radius:14px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5);}
.video-frame-wrap iframe{width:100%;height:100%;border:0;}

/* --- Pricing/AMC plans --- */
.plans-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;}
.plan-card{padding:36px 30px;position:relative;}
.plan-card.featured{border:2px solid var(--blue-500);transform:scale(1.03);box-shadow:var(--shadow-lg);}
.plan-tag{position:absolute;top:-13px;left:50%;transform:translateX(-50%);background:var(--grad-brand);color:#fff;font-size:.7rem;font-weight:700;padding:6px 16px;border-radius:var(--r-pill);font-family:var(--font-mono);letter-spacing:.05em;}
.plan-name{font-family:var(--font-mono);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--blue-600);margin-bottom:10px;}
.plan-price{font-family:var(--font-display);font-size:2.4rem;color:var(--navy-950);margin-bottom:4px;}
.plan-price span{font-size:.9rem;color:var(--slate-500);font-family:var(--font-body);font-weight:400;}
.plan-desc{font-size:.85rem;margin-bottom:24px;}
.plan-features li{display:flex;gap:10px;padding:9px 0;font-size:.87rem;color:var(--slate-700);align-items:flex-start;}
.plan-features svg{width:17px;height:17px;color:var(--success);flex-shrink:0;margin-top:2px;}

/* --- Team --- */
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:28px;}
.team-card{overflow:hidden;text-align:center;padding:0 0 28px;}
.team-photo{aspect-ratio:1/1;overflow:hidden;margin-bottom:20px;}
.team-photo img{width:100%;height:100%;object-fit:cover;}
.team-card h3{font-size:1.1rem;}
.team-role{font-family:var(--font-mono);font-size:.76rem;color:var(--blue-600);letter-spacing:.05em;margin:5px 0 12px;text-transform:uppercase;}
.team-bio{font-size:.86rem;padding:0 24px;}
.team-social{display:flex;justify-content:center;gap:8px;margin-top:16px;}
.team-social a{width:34px;height:34px;border-radius:50%;background:var(--ice-100);display:flex;align-items:center;justify-content:center;color:var(--slate-600);}
.team-social a:hover{background:var(--grad-brand);color:#fff;}
.team-social svg{width:15px;height:15px;}

/* --- Careers --- */
.job-list{display:flex;flex-direction:column;gap:14px;}
.job-item{display:flex;align-items:center;justify-content:space-between;padding:24px 28px;gap:20px;flex-wrap:wrap;}
.job-item h3{font-size:1.02rem;margin-bottom:6px;}
.job-meta{display:flex;gap:14px;flex-wrap:wrap;font-size:.8rem;color:var(--slate-500);font-family:var(--font-mono);}
.job-meta span{display:flex;align-items:center;gap:5px;}
.job-meta svg{width:14px;height:14px;}
.perks-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;}

/* --- Legal pages --- */
.legal-content{max-width:820px;}
.legal-content h2{margin-top:40px;margin-bottom:14px;font-size:1.35rem;}
.legal-content h2:first-child{margin-top:0;}
.legal-content p,.legal-content li{margin-bottom:12px;font-size:.95rem;}
.legal-content ul{padding-left:22px;list-style:disc;}
.legal-content li{margin-bottom:8px;}
.legal-toc{position:sticky;top:calc(var(--header-h) + 24px);}
.legal-toc a{display:block;padding:8px 0;font-size:.86rem;color:var(--slate-500);border-left:2px solid var(--ice-200);padding-left:14px;}
.legal-toc a:hover,.legal-toc a.active{color:var(--blue-600);border-color:var(--blue-600);}
.legal-layout{display:grid;grid-template-columns:220px 1fr;gap:60px;}
.legal-updated{font-family:var(--font-mono);font-size:.78rem;color:var(--slate-500);margin-bottom:30px;}

/* --- 404 --- */
.error-page{min-height:100vh;display:flex;align-items:center;justify-content:center;text-align:center;background:var(--grad-hero);color:#fff;padding:120px 24px 60px;}
.error-code{font-family:var(--font-display);font-size:clamp(6rem,18vw,11rem);font-weight:700;background:var(--grad-text);-webkit-background-clip:text;background-clip:text;color:transparent;line-height:1;}
.error-page h1{color:#fff;margin:10px 0 14px;}
.error-page p{color:rgba(255,255,255,.6);max-width:440px;margin-inline:auto;margin-bottom:32px;}

/* --- Chat widget (assistant) --- */
.chat-window{position:fixed;bottom:98px;right:26px;z-index:950;width:360px;max-width:88vw;height:min(520px,70vh);background:#fff;border-radius:20px;box-shadow:0 24px 70px rgba(0,0,0,.3);display:flex;flex-direction:column;overflow:hidden;transform:scale(.9) translateY(20px);opacity:0;pointer-events:none;transition:all .3s var(--ease);}
.chat-window.open{transform:scale(1) translateY(0);opacity:1;pointer-events:auto;}
.chat-head{background:var(--grad-brand);padding:16px 18px;display:flex;align-items:center;gap:12px;color:#fff;flex-shrink:0;}
.chat-avatar{width:38px;height:38px;border-radius:50%;background:rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-weight:700;font-family:var(--font-display);}
.chat-head strong{display:block;font-size:.92rem;}
.chat-head span{font-size:.72rem;color:rgba(255,255,255,.75);display:flex;align-items:center;gap:5px;}
.chat-head span::before{content:'';width:6px;height:6px;background:#22c55e;border-radius:50%;}
.chat-close{margin-left:auto;color:#fff;}
.chat-body{flex:1;overflow-y:auto;padding:16px;display:flex;flex-direction:column;gap:10px;background:var(--ice-50);}
.chat-msg{max-width:82%;padding:10px 14px;border-radius:14px;font-size:.85rem;line-height:1.5;}
.chat-msg.bot{background:#fff;align-self:flex-start;border-bottom-left-radius:4px;box-shadow:var(--shadow-sm);}
.chat-msg.user{background:var(--grad-brand);color:#fff;align-self:flex-end;border-bottom-right-radius:4px;}
.chat-quick{display:flex;flex-wrap:wrap;gap:6px;padding:0 16px 12px;}
.chat-quick button{font-size:.76rem;padding:8px 12px;border-radius:var(--r-pill);background:#fff;border:1px solid var(--ice-200);color:var(--blue-600);font-weight:600;}
.chat-input-row{display:flex;gap:8px;padding:12px;border-top:1px solid var(--ice-200);flex-shrink:0;}
.chat-input-row input{flex:1;padding:11px 14px;border-radius:var(--r-pill);border:1.5px solid var(--ice-200);font-size:.85rem;}
.chat-input-row button{width:40px;height:40px;border-radius:50%;background:var(--grad-brand);color:#fff;display:flex;align-items:center;justify-content:center;flex-shrink:0;}
.chat-input-row button svg{width:17px;height:17px;}

/* ==========================================================================
   Responsive component overrides
   ========================================================================== */
@media (max-width:1080px){
  .hero-inner{grid-template-columns:1fr;text-align:center;}
  .hero-copy .lead{margin-inline:auto;}
  .hero-cta-row,.hero-trust{justify-content:center;}
  .hero-visual{order:-1;max-width:360px;margin-inline:auto;}
  .split{grid-template-columns:1fr;}
  .why-grid,.services-grid,.industries-grid,.projects-grid,.blog-grid,.plans-grid{grid-template-columns:repeat(2,1fr);}
  .process-row{grid-template-columns:repeat(2,1fr);gap:36px 0;}
  .process-track{display:none;}
  .legal-layout{grid-template-columns:1fr;}
  .legal-toc{position:static;display:flex;flex-wrap:wrap;gap:14px;margin-bottom:30px;}
  .legal-toc a{border-left:none;border-bottom:2px solid var(--ice-200);padding:6px 2px;}
  .gallery-grid{grid-template-columns:repeat(2,1fr);}
  .team-grid{grid-template-columns:1fr;max-width:420px;margin-inline:auto;}
}
@media (max-width:640px){
  .stats-grid{grid-template-columns:repeat(2,1fr);gap:32px 16px;}
  .why-grid,.services-grid,.industries-grid,.projects-grid,.blog-grid,.plans-grid,.gallery-grid{grid-template-columns:1fr;}
  .gallery-item.wide{grid-column:span 1;}
  .process-row{grid-template-columns:1fr;}
  .form-row{grid-template-columns:1fr;}
  .form-panel{padding:26px 22px;}
  .cta-band{padding:44px 26px;}
  .cta-band-inner{flex-direction:column;text-align:center;}
  .cta-band-actions{justify-content:center;}
  .job-item{flex-direction:column;align-items:flex-start;}
  .chat-window{right:12px;bottom:88px;width:calc(100vw - 24px);}
  .perks-grid{grid-template-columns:1fr;}
}
