/* =========================================================
     FOOTER
     ========================================================= */
  .site-footer{
    position:relative;
    background:var(--ink-900);
    padding:48px clamp(24px, 6vw, 64px) 20px;
    overflow:hidden;
  }

  /* thin signal line sweeping the top edge — a quiet nod to the data/IT side of the business */
  .site-footer::before{
    content:'';
    position:absolute; top:0; left:0; right:0; height:1px;
    background:linear-gradient(90deg, transparent, var(--teal-500) 20%, transparent 40%);
    background-size:250% 100%;
    animation:footer-signal 9s linear infinite;
    opacity:0.6;
  }
  @keyframes footer-signal{
    0%{ background-position:0% 0; }
    100%{ background-position:-250% 0; }
  }

  /* faint survey-grid texture — references the property-preservation line of business */
  .site-footer::after{
    content:'';
    position:absolute; inset:0;
    background-image:
      linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
      linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
    background-size:48px 48px;
    mask-image:radial-gradient(ellipse 80% 100% at 50% 0%, black 0%, transparent 75%);
    -webkit-mask-image:radial-gradient(ellipse 80% 100% at 50% 0%, black 0%, transparent 75%);
    pointer-events:none;
  }

  .footer-inner{ position:relative; max-width:var(--container); margin:0 auto; }

  .footer-grid{
    display:grid;
    grid-template-columns:repeat(4, 1fr);
    gap:24px;
    padding-bottom:28px;
  }
  .footer-grid .footer-col{ padding:0; }

  .footer-col h4{
    display:flex; align-items:center; gap:8px;
    font-size:11.5px; font-weight:500; letter-spacing:0.1em; text-transform:uppercase;
    color:rgba(255,255,255,0.4);
    margin-bottom:12px;
    transition:color 300ms ease;
  }
  .col-tick{
    width:2px; height:11px; flex-shrink:0;
    background:var(--teal-500);
    opacity:0.55;
    transition:opacity 300ms ease, height 300ms ease;
  }
  .footer-col:hover h4{ color:rgba(255,255,255,0.7); }
  .footer-col:hover .col-tick{ opacity:1; height:14px; }

  .footer-col{ display:flex; flex-direction:column; }
  .footer-col a{
    font-size:14px; color:rgba(255,255,255,0.75); text-decoration:none;
    transition:color 200ms ease;
  }
  .footer-col a:hover{ color:var(--white); }

  .footer-contact-value{
    font-size:14px; line-height:1.5; color:rgba(255,255,255,0.8);
  }

  /* ---- social links: text + rotating arrow ---- */
  .footer-social{
    display:flex;
    flex-direction:column;
    gap:11px;
  }
  .social-link{
    display:inline-flex;
    align-items:center;
    gap: 4px;
    width:fit-content;
    font-size:14px;
    font-weight:500;
    color:rgba(255,255,255,0.75);
    text-decoration:none;
    transition:color 300ms ease;
  }
  .social-link:hover{
    color:var(--white);
    /* gap:11px; */
  }
  .social-link:hover::after{
    width:100%;
  }
  .social-arrow{
    width:13px; height:13px;
    flex-shrink:0;
    transform:rotate(-45deg) translateX(0);
    transition:transform 450ms cubic-bezier(0.4, 0, 0.2, 1);
  }
  .social-link:hover .social-arrow{
    transform:rotate(0deg) translateX(3px);
  }
  .footer-bottom{
    position:relative;
    display:flex; align-items:center; justify-content:space-between;
    flex-wrap:wrap; gap:14px;
    padding-top:18px;
    border-top:1px solid rgba(255,255,255,0.08);
  }
  .footer-bottom span{ font-size:12.5px; color:rgba(255,255,255,0.4); }
  .footer-legal{ display:flex; gap:22px; }
  .footer-legal a{
    font-size:12.5px; color:rgba(255,255,255,0.4); text-decoration:none;
    transition:color 200ms ease;
  }
  .footer-legal a:hover{ color:rgba(255,255,255,0.85); }

  .back-to-top{
    display:flex; align-items:center; gap:7px;
    background:none; border:none; cursor:pointer;
    font-family:inherit; font-size:12.5px; font-weight:500;
    color:rgba(255,255,255,0.55);
    padding:5px 0;
    transition:color 200ms ease, transform 200ms ease;
  }
  .back-to-top:hover{ color:var(--teal-500); transform:translateY(-2px); }
  .back-to-top svg{ width:13px; height:13px; }

  @media (max-width:1023px){
    .site-footer{ padding:40px 24px 16px; }
    .footer-grid{ grid-template-columns:1fr 1fr; row-gap:24px; column-gap:20px; padding-bottom:24px; }
  }
  @media (max-width:600px){
    .footer-grid{ grid-template-columns:1fr; row-gap:20px; }
    .footer-bottom{ flex-direction:column; align-items:flex-start; }
  }

  @media (prefers-reduced-motion: reduce){
    * { animation:none !important; transition:none !important; }
    .site-footer::before{ display:none; }
  }