/* 05-footer-responsive — Footer, animations, mouse glow, responsive + mobile pass.
   Loaded on every page in file-name order (see inc/core/assets.php). */

/* ---------- 12. FOOTER ---------------------------------------------- */
footer{background:var(--ink); color:#cdd6ef; padding:64px var(--gutter) 30px; margin-top:0;}
[data-theme="dark"] footer{background:#050912;}
.footgrid{max-width:var(--maxw); margin:0 auto; display:grid; grid-template-columns:1.6fr repeat(4,1fr); gap:40px;}
footer h5{font-size:12px; text-transform:uppercase; letter-spacing:.14em; color:#fff; margin:0 0 16px; font-weight:700;}
footer a{display:block; font-size:13px; color:#9aa6cc; margin-bottom:11px; transition:color var(--fast);}
footer a:hover{color:#fff;}
.footbottom{max-width:var(--maxw); margin:40px auto 0; padding-top:22px; border-top:1px solid rgba(255,255,255,.1); display:flex; align-items:center; justify-content:space-between; font-size:12px; color:#8390b8; flex-wrap:wrap; gap:10px;}
.newsletter{display:flex; gap:8px; margin-top:14px; max-width:320px;}
.newsletter input{flex:1; padding:11px 14px; border-radius:var(--r-pill); border:1px solid rgba(255,255,255,.16); background:rgba(255,255,255,.06); color:#fff; font-family:inherit; font-size:13px; outline:none;}
.newsletter input::placeholder{color:#8390b8;}
/* ---------- 13. UTIL ANIMATIONS ------------------------------------- */
.reveal{opacity:0; transform:translateY(28px); transition:opacity var(--slow) var(--ease), transform var(--slow) var(--ease);}
.reveal.in-view{opacity:1; transform:translateY(0);}
.reveal-stagger > *{opacity:0; transform:translateY(22px); transition:opacity .6s var(--ease), transform .6s var(--ease);}
.reveal-stagger.in-view > *{opacity:1; transform:translateY(0);}
.reveal-stagger.in-view > *:nth-child(1){transition-delay:.03s;}
.reveal-stagger.in-view > *:nth-child(2){transition-delay:.09s;}
.reveal-stagger.in-view > *:nth-child(3){transition-delay:.15s;}
.reveal-stagger.in-view > *:nth-child(4){transition-delay:.21s;}
.reveal-stagger.in-view > *:nth-child(5){transition-delay:.27s;}
.reveal-stagger.in-view > *:nth-child(6){transition-delay:.33s;}
.reveal-stagger.in-view > *:nth-child(7){transition-delay:.39s;}
.reveal-stagger.in-view > *:nth-child(8){transition-delay:.45s;}
.blob{position:absolute; border-radius:50%; filter:blur(70px); pointer-events:none; z-index:0;}
@keyframes floatY{0%,100%{transform:translateY(0) translateX(0);}50%{transform:translateY(-18px) translateX(8px);}}
@keyframes floatY2{0%,100%{transform:translateY(0) translateX(0);}50%{transform:translateY(16px) translateX(-10px);}}
@keyframes spinSlow{from{transform:rotate(0);}to{transform:rotate(360deg);}}
@keyframes pulseRing{0%{box-shadow:0 0 0 0 rgba(30,158,106,.35);}70%{box-shadow:0 0 0 10px rgba(30,158,106,0);}100%{box-shadow:0 0 0 0 rgba(30,158,106,0);}}
@keyframes shimmer{0%{background-position:100% 0;}100%{background-position:-100% 0;}}
@keyframes marquee{from{transform:translateX(0);}to{transform:translateX(-50%);}}
@keyframes ticker-blink{0%,100%{opacity:1;}50%{opacity:.3;}}
@keyframes fadeUp{from{opacity:0; transform:translateY(12px);}to{opacity:1; transform:translateY(0);}}
.float-a{animation:floatY 9s ease-in-out infinite;}
.float-b{animation:floatY2 11s ease-in-out infinite;}
/* mouse glow */
.glow-follow{position:fixed; width:340px; height:340px; border-radius:50%; background:radial-gradient(circle,rgba(62,111,242,.14),transparent 70%); pointer-events:none; z-index:1; transform:translate(-50%,-50%); transition:opacity .3s; mix-blend-mode:multiply;}
[data-theme="dark"] .glow-follow{mix-blend-mode:screen; background:radial-gradient(circle,rgba(62,111,242,.22),transparent 70%);}
/* ---------- 14. RESPONSIVE ------------------------------------------ */
@media (max-width:1080px){
  .mainnav{display:none;}
  .mobile-menu-btn{display:flex;}
  :root{--gutter:26px;}
  .dash{grid-template-columns:1fr;}
  .dash-side{display:none;}
  .kpi-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:900px){
  .headcta .btn-outline{display:none;}
  .footgrid{grid-template-columns:1fr 1fr;}
  .section-head h2{font-size:26px;}
  .section{padding:60px 0;}
}
@media (max-width:640px){
  :root{--gutter:18px;}
  .topstrip .left span:not(.live){display:none;}
  .footgrid{grid-template-columns:1fr; gap:26px;}
  .footbottom{flex-direction:column; align-items:flex-start;}
  .kpi-grid{grid-template-columns:1fr;}
  .mega{display:none;}
}
/* ===== comprehensive mobile pass ===== */
@media (max-width:760px){
  .compgrid{grid-template-columns:1fr;}
  .svcgrid{grid-template-columns:1fr 1fr; gap:12px;}
  .rfqgrid{grid-template-columns:1fr;}
  .pd-top{grid-template-columns:1fr; gap:22px; padding:8px 0 34px;}
  .pd-gallery .main{height:260px;}
  .pd-gallery .main svg{width:80px; height:80px;}
  .pd-info h1{font-size:24px;}
  .pd-attrs{grid-template-columns:1fr;}
  .help-cats{grid-template-columns:1fr 1fr; gap:12px;}
  .ct-layout{grid-template-columns:1fr; gap:24px; padding:16px 0 46px;}
}
@media (max-width:640px){
  header.main{ gap:12px;}
  .logo .word{font-size:17px;}
  .logo .word small{display:none;}
  .logo .mark{width:34px; height:34px;}
  .headcta{display:none;}
  .section{padding:44px 0;}
  .section-sm{padding:32px 0;}
  .section-head h2{font-size:21px;}
  .section-head p{font-size:13.5px;}
  h1{font-size:29px;}
  .lead-p{font-size:14px;}
  .breadcrumb{padding:12px 0;}
  .prod-grid{grid-template-columns:1fr 1fr !important; gap:12px;}
  body.route-marketplace .prod-grid,body.route-home .prod-grid{grid-template-columns:1fr 1fr;}
  .cols{columns:1;}
  .pd-tiers{grid-template-columns:repeat(3,1fr); gap:8px;}
  .pd-price-box{padding:16px;}
  .pd-cta{gap:8px;}
  .pd-cta .btn{flex:1 1 100%;}
  .help-cats{grid-template-columns:1fr 1fr;}
  .ct-layout h1{font-size:26px !important;}
  .office{gap:14px;}
  .ctaband{flex-direction:column; align-items:flex-start; padding:28px 22px; border-radius:var(--r-lg); gap:18px;}
  .ctaband h3{font-size:22px !important; line-height:1.2;}
  .ctaband p{font-size:13.5px !important;}
  .cta-actions{width:100%;}
  .cta-actions .btn{width:100%; justify-content:center;}
  .cta-chips{gap:8px 14px;}
  .sell-hero{padding:34px 0 40px;}
  .sell-stats{gap:16px;}
  .join-banner{padding:26px 22px;}
  .join-banner .btn{width:100%; justify-content:center;}
  .row.gap4{flex-direction:column; align-items:stretch;}
  .modal{padding:24px 20px; width:calc(100% - 32px);}
  .newsletter{flex-wrap:wrap;}
  .brand-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:400px){
  :root{--gutter:14px;}
  .prod-grid{grid-template-columns:1fr !important;}
  .svcgrid,.help-cats{grid-template-columns:1fr;}
  .pd-tiers{grid-template-columns:1fr;}
  h1{font-size:26px;}
}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important; transition-duration:.001ms !important;}
}
