/* ==========================================================================
   WEBBUILDR.CSS — Bespoke design system for webbuildr.io
   --------------------------------------------------------------------------
   This file IS NOT a reusable template. It is the locked design system for
   webbuildr.io, archived here so future tweaks touch one file instead of
   every page.

   For new client builds:
     - Build the homepage from scratch using the ui-ux-pro-max + frontend-design
       skills. Show on the strategy call. Iterate until the client signs off.
     - Once locked, abstract the homepage's design system into its own file
       (e.g. /styles/[client-name].css) and apply it to every subsequent page
       on that client's site.
     - The /styles/ folder serves as the archive of locked client design
       systems — one file per client, each unique to its build.

   Update workflow for THIS file:
     - Tweaks to webbuildr.io's nav, footer, tokens, or shared components
       happen here. The change propagates to every page that links to this
       file.
   ========================================================================== */

/* DESIGN TOKENS */
:root {
  --midnight: #060F2E;
  --navy: #0F2252;
  --electric: #1D4ED8;
  --sky: #3B82F6;
  --mist: #93C5FD;
  --ice: #F0F4FF;
  --white: #FFFFFF;
  /* Section background tiers — three intentional shades in the logo's blue family */
  --bg-deep: #050C26;
  --bg-mid: #0A1A42;
  --bg-lifted: #142B5C;
  /* Contrast-safe text tokens */
  --td-primary: #FFFFFF;
  --td-body: #D6E8FF;
  --td-secondary: #BFDBFE;
  --td-muted: #93C5FD;
  /* Light bg tokens */
  --tl-primary: #060F2E;
  --tl-secondary: #1E3A5F;
  --tl-muted: #374151;
  --tl-faint: #6B7280;
  /* Signal accents */
  --signal-amber: #F59E0B;
  --signal-amber-light: #FCD34D;
  --signal-amber-bg: rgba(245,158,11,.12);
  --signal-amber-border: rgba(245,158,11,.4);
  --signal-green: #10B981;
  --signal-green-light: #6EE7B7;
  --signal-green-bg: rgba(16,185,129,.12);
  --signal-green-border: rgba(16,185,129,.4);
}

/* RESET / BASE */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:'Inter',sans-serif;background:var(--bg-deep);color:var(--td-primary);overflow-x:hidden;-webkit-font-smoothing:antialiased}

/* SCROLL PROGRESS */
.scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(to right,var(--electric),var(--sky));z-index:300;width:0;transition:width .05s linear;box-shadow:0 0 12px rgba(59,130,246,.5)}

/* NAV */
nav{position:fixed;top:0;left:0;right:0;z-index:200;padding:0 5%;height:64px;display:flex;align-items:center;justify-content:space-between;transition:background .4s,border-color .4s;border-bottom:1px solid transparent}
nav.scrolled{background:rgba(6,15,46,0.92);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-color:rgba(29,78,216,0.25)}
.logo{display:flex;align-items:center;gap:10px;text-decoration:none;min-height:44px;flex-shrink:0}
.brand-logo-mark{width:30px;height:30px;display:block;object-fit:contain;flex-shrink:0}
.brand-logo-full{width:142px;height:auto;display:block;object-fit:contain}
.logo-icon{position:relative;width:28px;height:28px}
.logo-icon span{position:absolute;border-radius:5px;transition:transform .3s}
.logo-icon span:nth-child(1){width:20px;height:20px;background:#1D4ED8;bottom:0;left:0}
.logo-icon span:nth-child(2){width:20px;height:20px;background:#3B82F6;opacity:.75;bottom:5px;left:5px}
.logo-icon span:nth-child(3){width:20px;height:20px;background:#BFDBFE;opacity:.6;bottom:10px;left:10px}
.logo:hover .logo-icon span:nth-child(1){transform:translate(-1px,1px)}
.logo:hover .logo-icon span:nth-child(3){transform:translate(1px,-1px)}
.logo-text{font-size:18px;font-weight:700;color:#fff;letter-spacing:-.5px}
.nav-links{display:flex;align-items:center;gap:1.4rem;list-style:none}
.nav-links a{color:var(--td-secondary);text-decoration:none;font-size:14px;font-weight:500;transition:color .2s;min-height:44px;display:flex;align-items:center}
.nav-links a:hover{color:#fff}
.nav-links a[aria-current="page"]{color:#fff}
.nav-live{display:inline-flex!important;align-items:center;gap:.5rem;color:var(--td-secondary)!important;transition:color .2s}
.nav-live:hover{color:#fff!important}
.nav-live-dot{width:7px;height:7px;border-radius:50%;background:var(--signal-green);box-shadow:0 0 6px rgba(16,185,129,.7);animation:pulse 2s ease-in-out infinite;flex-shrink:0}
.nav-cta{background:var(--electric)!important;color:#fff!important;padding:10px 20px!important;border-radius:8px;font-weight:600!important;transition:background .2s,transform .15s,box-shadow .2s!important}
.nav-cta:hover{background:#1e40af!important;transform:translateY(-1px);box-shadow:0 6px 20px rgba(29,78,216,.4)}
.nav-portal{background:#fff!important;color:var(--midnight)!important;padding:10px 18px!important;border-radius:8px;font-weight:700!important;margin-left:.6rem;transition:transform .15s,box-shadow .2s,background .2s!important}
.nav-portal:hover{background:var(--ice)!important;color:var(--midnight)!important;transform:translateY(-1px);box-shadow:0 8px 26px rgba(255,255,255,.18)}
.nav-audit{display:inline-flex!important;align-items:center;gap:.45rem;color:var(--sky)!important;font-weight:600!important;border:1px solid rgba(59,130,246,.4);padding:8px 14px!important;border-radius:8px;transition:border-color .2s,background .2s,color .2s}
.nav-audit:hover{border-color:var(--sky);background:rgba(59,130,246,.1);color:#fff!important}
.nav-audit-badge{font-size:11px;font-weight:700;background:rgba(59,130,246,.18);color:var(--sky);padding:2px 7px;border-radius:100px;letter-spacing:.02em}
.nav-audit:hover .nav-audit-badge{background:rgba(59,130,246,.35);color:#fff}
.nav-hamburger{display:none;flex-direction:column;justify-content:center;gap:5px;background:none;border:none;cursor:pointer;padding:10px;min-width:44px;min-height:44px;align-items:center}
.nav-hamburger span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;transition:transform .3s,opacity .3s}
.nav-hamburger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.nav-hamburger.open span:nth-child(2){opacity:0}
.nav-hamburger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobile-menu{display:none;position:fixed;top:64px;left:0;right:0;background:rgba(6,15,46,0.97);backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid rgba(29,78,216,0.25);padding:1.5rem 5% 2rem;z-index:190;flex-direction:column;gap:.25rem;transform:translateY(-10px);opacity:0;transition:transform .3s,opacity .3s;pointer-events:none}
.mobile-menu.open{transform:translateY(0);opacity:1;pointer-events:all}
.mobile-menu a{color:var(--td-body);text-decoration:none;font-size:18px;font-weight:500;padding:14px 0;border-bottom:1px solid rgba(29,78,216,0.15);display:block;transition:color .2s}
.mobile-menu a:last-child{border-bottom:none}
.mobile-menu a:hover{color:#fff}
.mobile-menu .m-cta{margin-top:1rem;background:var(--electric);color:#fff!important;text-align:center;border-radius:10px;padding:15px!important;font-weight:600!important;border-bottom:none!important}
.mobile-menu .m-portal{background:#fff;color:var(--midnight)!important;text-align:center;border-radius:10px;padding:15px!important;font-weight:700!important;border-bottom:none!important}
.mobile-menu .mob-link-audit{color:var(--sky)!important;border:1px solid rgba(59,130,246,.4)!important;border-radius:10px;padding:13px 15px!important;text-align:center;font-weight:600;border-bottom:none!important}

/* SHARED ANIMATIONS */
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes fadeUp{to{opacity:1;transform:translateY(0)}}
@keyframes scrollPulse{0%,100%{opacity:.4}50%{opacity:1}}

/* BUTTONS */
.btn-primary{background:var(--electric);color:#fff;padding:16px 32px;border-radius:10px;font-size:16px;font-weight:600;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;transition:background .2s,transform .15s,box-shadow .2s;min-height:52px;border:none;cursor:pointer;font-family:inherit}
.btn-primary:hover{background:#1e40af;transform:translateY(-2px);box-shadow:0 8px 32px rgba(29,78,216,.4)}
.btn-ghost{background:transparent;color:#fff;padding:16px 32px;border-radius:10px;font-size:16px;font-weight:500;text-decoration:none;border:1.5px solid rgba(255,255,255,0.3);display:inline-flex;align-items:center;justify-content:center;transition:border-color .2s,background .2s,transform .15s;min-height:52px}
.btn-ghost:hover{border-color:rgba(255,255,255,.6);background:rgba(255,255,255,.06);transform:translateY(-2px)}

/* SECTION EYEBROW */
.section-tag{display:inline-block;font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--sky);margin-bottom:1rem}

/* REVEAL ANIMATION */
.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s ease,transform .8s ease}
.reveal.visible{opacity:1;transform:translateY(0)}

/* FOOTER */
footer{background:#030A1E;border-top:1px solid rgba(29,78,216,.15);padding:4rem 5% 2rem}
.footer-top{max-width:1200px;margin:0 auto;display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;padding-bottom:3rem;border-bottom:1px solid rgba(29,78,216,.15)}
.footer-brand .logo{margin-bottom:1rem}
.footer-brand p{font-size:14px;color:var(--td-secondary);line-height:1.7;max-width:300px;margin-bottom:1.5rem}
.footer-socials{display:flex;gap:.6rem}
.footer-social{width:36px;height:36px;border-radius:8px;background:rgba(29,78,216,.15);border:1px solid rgba(29,78,216,.3);display:flex;align-items:center;justify-content:center;transition:background .2s,border-color .2s,transform .15s}
.footer-social:hover{background:rgba(29,78,216,.35);border-color:rgba(59,130,246,.5);transform:translateY(-2px)}
.footer-social svg{width:16px;height:16px;color:var(--td-secondary)}
.footer-portal{display:inline-flex;align-items:center;gap:.4rem;margin-bottom:1.5rem;background:#fff;color:var(--midnight);padding:11px 18px;border-radius:8px;font-size:14px;font-weight:700;text-decoration:none;transition:transform .15s,box-shadow .2s,background .2s}
.footer-portal:hover{background:var(--ice);transform:translateY(-2px);box-shadow:0 8px 26px rgba(255,255,255,.15)}
.footer-col h4{font-size:13px;font-weight:700;color:#fff;letter-spacing:.08em;text-transform:uppercase;margin-bottom:1.25rem}
.footer-col ul{list-style:none;display:flex;flex-direction:column;gap:.75rem}
.footer-col a{color:var(--td-secondary);text-decoration:none;font-size:14px;transition:color .2s;display:inline-flex;align-items:center;min-height:24px}
.footer-col a:hover{color:#fff}
.footer-bottom{max-width:1200px;margin:0 auto;padding-top:2rem;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:1rem}
.footer-copy{font-size:13px;color:rgba(255,255,255,.5)}
.footer-made{font-size:13px;color:rgba(255,255,255,.5);display:flex;align-items:center;gap:8px}
.footer-made-dot{width:6px;height:6px;border-radius:50%;background:var(--sky);box-shadow:0 0 8px var(--sky)}

/* TOAST NOTIFICATIONS */
.toast-container{position:fixed;bottom:24px;right:24px;z-index:300;display:flex;flex-direction:column;gap:.75rem;max-width:calc(100% - 48px);pointer-events:none}
.toast{background:linear-gradient(180deg,rgba(15,34,82,.7),rgba(15,34,82,.4));border:1px solid rgba(59,130,246,.45);border-radius:12px;padding:14px 18px;color:#fff;font-size:14px;box-shadow:0 30px 80px rgba(0,0,0,.5),0 12px 30px rgba(29,78,216,.25);min-width:280px;display:flex;align-items:flex-start;gap:.75rem;animation:toast-in .32s cubic-bezier(.22,1,.36,1);pointer-events:auto;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.toast.error{border-color:#EF4444;border-left-width:4px}
.toast.error svg{color:#EF4444;flex-shrink:0;width:18px;height:18px;margin-top:1px}
.toast.success{border-color:#10B981;border-left-width:4px}
.toast.success svg{color:#10B981;flex-shrink:0;width:18px;height:18px;margin-top:1px}
.toast.removing{animation:toast-out .22s cubic-bezier(.7,0,1,.55) forwards}
@keyframes toast-in{from{opacity:0;transform:translateX(100%)}to{opacity:1;transform:translateX(0)}}
@keyframes toast-out{to{opacity:0;transform:translateX(100%)}}

/* RESPONSIVE — shared elements only (nav, footer, buttons) */
@media(max-width:900px){
  .nav-links{display:none}
  .nav-hamburger{display:flex}
  .mobile-menu{display:flex}
  .btn-primary,.btn-ghost{width:100%;max-width:340px;margin:0 auto}
  footer{padding:3rem 5% 2rem}
  .footer-top{grid-template-columns:1fr;gap:2.5rem;padding-bottom:2.5rem}
  .footer-brand p{max-width:100%}
  .footer-bottom{flex-direction:column;text-align:center}
}
@media(max-width:560px){
  .toast-container{left:16px;right:16px;bottom:16px}
  .toast{min-width:0;backdrop-filter:none;-webkit-backdrop-filter:none;background:rgba(15,34,82,.95)}
}

/* REDUCED MOTION — global respect */
@media (prefers-reduced-motion:reduce){
  .nav-live-dot{animation:none}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

/* MOBILE BACKDROP-FILTER DISABLE — GPU-expensive on mobile */
@media(max-width:768px){
  nav, nav.scrolled, .mobile-menu{
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  nav, nav.scrolled{background:rgba(6,15,46,.95)!important}
  .mobile-menu{background:rgba(6,15,46,.97)!important}
}

/* FOCUS RINGS — keyboard accessibility */
*:focus{outline:none}
*:focus-visible{
  outline:none;
  box-shadow:0 0 0 3px rgba(59,130,246,.55), 0 0 0 5px var(--midnight);
  border-radius:8px;
}
button:focus-visible, a:focus-visible{
  box-shadow:0 0 0 3px rgba(59,130,246,.55), 0 0 0 5px var(--midnight);
}
input:focus-visible, select:focus-visible, textarea:focus-visible{
  box-shadow:0 0 0 3px rgba(59,130,246,.55), 0 0 0 5px var(--midnight);
  border-color:var(--sky);
}
