/* Atimi global footer: contact endcap + site footer.
   Ported from Global shell/Atimi_global_shell.html (v10, data-shared-endcap-version 1.2).
   Loaded site-wide: both live in the Elementor Theme Builder footer template (844).
   Markup source of truth: wp-content/uploads/atimi/global-footer.html
   The shell carries no responsive layout tokens, so gutters and the section heading
   size follow the page prototypes / site standard: gutter 80 / 48 (<=1024) / 16 (<=700),
   heading 50 / 42 (<=1024) / 34 (<=700). */

/* Elementor container reset: full-bleed, no boxed width, no padding. */
.atimi-global-footer{padding:0;margin:0;--container-max-width:100%}
.atimi-global-footer > .e-con-inner{max-width:100%;padding:0}
.atimi-global-footer .elementor-widget-html,
.atimi-global-footer .elementor-widget-container{width:100%}

/* ── Contact endcap ─────────────────────────────────────────────────────────
   !important throughout: style.css carries unscoped `.contact-conclusion ...`
   rules with !important, and `.page-id-835 .contact-*` rules from the old
   Services endcap. */
#contact.atimi-endcap{
  position:relative!important;
  isolation:isolate;
  overflow:hidden!important;
  padding:clamp(72px,7vw,104px) 0 clamp(56px,5vw,80px)!important;
  background:
    radial-gradient(68% 68% at 86% 18%,rgb(50 192 233 / .13),transparent 56%),
    radial-gradient(54% 54% at 18% 74%,rgb(11 211 197 / .08),transparent 62%),
    linear-gradient(180deg,#04111c 0%,#061723 52%,#03101a 100%)!important;
  color:#fff!important;
}
#contact.atimi-endcap::before{
  content:""!important;
  position:absolute!important;
  z-index:-2!important;
  width:clamp(240px,28vw,380px)!important;
  height:auto!important;
  aspect-ratio:394 / 512;
  left:auto!important;
  right:clamp(24px,8vw,120px)!important;
  top:50%!important;
  background:url("/wp-content/uploads/2026/09/contact-background.png") center/contain no-repeat!important;
  opacity:.055!important;
  transform:translateY(-50%) rotate(-8deg)!important;
  filter:saturate(.86)!important;
  pointer-events:none;
  user-select:none;
}
#contact.atimi-endcap::after{content:none!important;display:none!important;}
#contact.atimi-endcap .contact-conclusion-shell{
  width:min(1280px,calc(100% - 160px))!important;
  max-width:1280px!important;
  margin-inline:auto!important;
  padding-inline:0!important;
  box-sizing:border-box!important;
}
#contact.atimi-endcap .contact-conclusion-grid{display:grid!important;grid-template-columns:minmax(0,1fr)!important;gap:0!important;}
#contact.atimi-endcap .contact-copy{
  display:grid!important;
  grid-template-columns:minmax(260px,.72fr) minmax(0,1.28fr)!important;
  align-items:center!important;
  gap:clamp(48px,8vw,120px)!important;
  max-width:none!important;
  opacity:1!important;
  transform:none!important;
}
#contact.atimi-endcap .contact-heading{
  grid-column:1;
  margin:0!important;
  color:inherit!important;
  font-family:'Poppins',sans-serif!important;
  font-size:50px!important;
  font-weight:500!important;
  line-height:1.12!important;
  letter-spacing:-.015em!important;
}
#contact.atimi-endcap .contact-heading a,
#contact.atimi-endcap .contact-heading a:hover,
#contact.atimi-endcap .contact-heading a:focus-visible{color:inherit!important;text-decoration:none!important;font:inherit!important;letter-spacing:inherit!important;}
#contact.atimi-endcap .contact-details{
  grid-column:2;
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  column-gap:0!important;
  width:auto!important;
  margin-top:0!important;
  border-top:1px solid rgb(255 255 255 / .13)!important;
}
#contact.atimi-endcap .contact-detail-row{
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:8px!important;
  align-items:start!important;
  min-width:0;
  min-height:0!important;
  padding:18px 24px 18px 0!important;
  border-bottom:1px solid rgb(255 255 255 / .1)!important;
}
#contact.atimi-endcap .contact-detail-label{
  color:rgb(226 244 252 / .52)!important;
  font-family:'Inter',sans-serif!important;
  font-size:14px!important;
  font-weight:500!important;
  line-height:1.45!important;
  letter-spacing:0!important;
  text-transform:none!important;
}
#contact.atimi-endcap .contact-detail-value,
#contact.atimi-endcap .contact-detail-value a{
  color:#fff!important;
  font-family:'Inter',sans-serif!important;
  font-size:18px!important;
  font-weight:400!important;
  line-height:1.6!important;
  letter-spacing:0!important;
  text-decoration:none!important;
}
#contact.atimi-endcap .contact-detail-value a{
  position:relative!important;
  display:inline!important;
  padding-bottom:0!important;
  background-image:linear-gradient(90deg,#32c0e9,#32c0e9)!important;
  background-repeat:no-repeat!important;
  background-size:100% 1px!important;
  background-position:0 100%!important;
  transition:background-size .35s cubic-bezier(.22,1,.36,1),color .25s ease!important;
}
/* Design (Home v540 link states): white text on a full sky underline at rest; on hover the text turns sky and the underline retracts. */
#contact.atimi-endcap .contact-detail-value a:not(.contact-social-link):hover,
#contact.atimi-endcap .contact-detail-value a:not(.contact-social-link):focus-visible{color:#32c0e9!important;background-size:0 1px!important;}
#contact.atimi-endcap .contact-detail-value .contact-social-link{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:34px!important;
  height:34px!important;
  background-image:none!important;
  color:#fff!important;
  transition:opacity .25s ease,transform .28s ease!important;
}
#contact.atimi-endcap .contact-detail-value .contact-social-link:hover,
#contact.atimi-endcap .contact-detail-value .contact-social-link:focus-visible{background-image:none!important;color:#fff!important;opacity:.76!important;transform:translateY(-2px)!important;}
#contact.atimi-endcap .contact-social-icon{display:block!important;width:34px!important;height:34px!important;}

/* Heading word reveal (script: js/atimi-endcap-heading-reveal.js). The base
   .main-heading-reveal word rules live in style.css; these are the shell's additions. */
#contact .contact-heading.heading-reveal-pending{visibility:hidden!important;}
#contact .main-heading-reveal:not(.is-heading-revealed) .heading-reveal-word-inner{opacity:0;transform:translate3d(0,112%,0);}
#contact .main-heading-reveal.is-heading-revealed .heading-reveal-word-inner{opacity:1!important;transform:translate3d(0,0,0)!important;}
body.elementor-editor-active #contact .contact-heading.heading-reveal-pending,
body.elementor-editor-preview #contact .contact-heading.heading-reveal-pending{visibility:visible!important;}
@media (prefers-reduced-motion:reduce){
  #contact .main-heading-reveal.is-heading-revealed .heading-reveal-word-inner{opacity:1!important;transform:none!important;transition:none!important;}
  #contact.atimi-endcap .contact-detail-value a,
  #contact.atimi-endcap .contact-detail-value .contact-social-link{transition:none!important;}
}

@media (max-width:1024px){
  #contact.atimi-endcap .contact-conclusion-shell{width:min(1280px,calc(100% - 96px))!important;}
  #contact.atimi-endcap .contact-heading{font-size:42px!important;}
}
@media (max-width:760px){
  #contact.atimi-endcap{padding:64px 0 56px!important;}
  #contact.atimi-endcap::before{width:clamp(220px,62vw,300px)!important;right:18px!important;top:42%!important;}
  #contact.atimi-endcap .contact-copy{grid-template-columns:1fr!important;gap:32px!important;}
  #contact.atimi-endcap .contact-heading{grid-column:auto;max-width:12ch!important;}
  #contact.atimi-endcap .contact-details{grid-column:auto;grid-template-columns:1fr 1fr!important;margin-top:0!important;}
  #contact.atimi-endcap .contact-detail-row{padding:16px 16px 16px 0!important;}
}
@media (max-width:700px){
  #contact.atimi-endcap .contact-conclusion-shell{width:calc(100% - 32px)!important;}
  #contact.atimi-endcap .contact-heading{font-size:34px!important;}
  /* design type tokens at <=700: meta 13px, body 17px */
  #contact.atimi-endcap .contact-detail-label{font-size:13px!important;}
  #contact.atimi-endcap .contact-detail-value,
  #contact.atimi-endcap .contact-detail-value a{font-size:17px!important;}
}
@media (max-width:480px){
  #contact.atimi-endcap::before{width:240px!important;right:12px!important;top:40%!important;}
  #contact.atimi-endcap .contact-details{grid-template-columns:1fr!important;}
  #contact.atimi-endcap .contact-detail-row{padding-right:0!important;}
}

/* ── Site footer ───────────────────────────────────────────────────────────
   Hello Elementor caps .site-footer at the theme content width (1140px);
   this footer is full-bleed. */
.site-footer{
  position:relative;
  overflow:hidden;
  background:#03101a;
  color:#fff;
  border-top:0;
  padding:0;
  width:100%!important;
  max-width:none!important;
  margin:0;
}
.site-footer .footer-animation-placeholder{width:100%;overflow:hidden;background:#03101a;line-height:0;}
.site-footer .footer-animation-placeholder img{
  display:block;
  width:100%;
  height:clamp(80px,12.35vw,253px);
  object-fit:cover;
  object-position:center;
  margin:0;
}
.site-footer .footer-shell{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:48px;
  width:min(1280px,calc(100% - 160px));
  max-width:1280px;
  margin-inline:auto;
  padding:50px 0;
  box-sizing:border-box;
}
.site-footer .footer-top{display:block;flex:0 0 auto;margin:0;padding:0;border:0;}
.site-footer .footer-brand{display:block;margin:0;max-width:none;text-align:left;}
.site-footer .footer-logo{display:block;width:180px;max-width:none;height:auto;margin:0;filter:none;}
.site-footer .footer-logo--color{display:none;}
.site-footer .footer-bottom{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:20px;
  width:auto;
  margin:0 0 0 auto;
  padding:0;
  border:0;
  color:rgb(226 244 252 / .48);
  font-family:'Inter',sans-serif;
  font-size:14px;
  line-height:1.5;
  text-align:left;
}
.site-footer .footer-links--legal{
  order:1;
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-end;
  gap:20px;
  width:auto;
  color:rgb(226 244 252 / .48);
  font-family:'Inter',sans-serif;
  font-size:14px;
  font-weight:600;
  line-height:18.2px;
  white-space:nowrap;
}
.site-footer .footer-links--legal a{
  position:relative;
  display:block;
  color:inherit;
  font:inherit;
  line-height:inherit;
  letter-spacing:0;
  text-decoration:none;
  text-transform:none;
  transition:color .25s ease;
}
.site-footer .footer-links--legal a:hover,
.site-footer .footer-links--legal a:focus-visible{color:#77dff2;transform:none;}
.site-footer a:focus-visible{outline:2px solid #77dff2;outline-offset:3px;border-radius:2px;}
.site-footer .footer-legal{
  order:2;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  flex-wrap:wrap;
  gap:10px 18px;
  width:auto;
  color:rgb(226 244 252 / .48);
  font-family:'Inter',sans-serif;
  font-size:14px;
  font-weight:300;
  line-height:18.2px;
  letter-spacing:0;
  text-transform:none;
  text-align:left;
  white-space:nowrap;
}

@media (max-width:1024px){
  .site-footer .footer-shell{width:min(1280px,calc(100% - 96px));}
}
@media (max-width:760px){
  .site-footer .footer-shell{display:block;padding:0;}
  .site-footer .footer-top{display:flex;justify-content:center;padding:30px 0 18px;}
  .site-footer .footer-brand{display:flex;flex-direction:column;align-items:center;gap:12px;max-width:360px;text-align:center;}
  .site-footer .footer-logo{width:min(156px,70%);}
  .site-footer .footer-bottom{
    width:100%;
    margin:0;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:14px;
    padding:0 0 30px;
    text-align:center;
  }
  .site-footer .footer-links--legal{
    order:0;
    width:100%;
    flex-wrap:wrap;
    align-items:center;
    justify-content:center;
    gap:12px 20px;
    font-size:18px;
    font-weight:500;
    line-height:1.3;
    white-space:normal;
    text-align:center;
  }
  .site-footer .footer-legal{
    order:0;
    width:100%;
    justify-content:center;
    font-weight:300;
    line-height:1.45;
    white-space:normal;
    text-align:center;
  }
}
@media (min-width:701px) and (max-width:760px){
  .site-footer .footer-links--legal{font-size:14px;font-weight:400;line-height:1.5;}
}
@media (max-width:700px){
  .site-footer .footer-shell{width:calc(100% - 32px);}
}

/* 761-1023px (tablet): the single footer row (logo | links + copyright) is ~110px wider than the space, so the
   links and copyright ran off the right edge. Same in the design file. Stack them, right-aligned. (2026-09-28) */
@media (min-width:761px) and (max-width:1023px){
  .site-footer .footer-bottom{flex-direction:column!important;align-items:flex-end!important;gap:10px!important;min-width:0}
  .site-footer .footer-legal{text-align:right}
}

/* Legal links + copyright matched to the design (2026-09-28): #AECBDE (was rgba(226,244,252,.48)), links 500
   (was 600), white on hover; <=760 line-height 1.5 and copyright 500; <=700 links 16px/1.3, copyright 13px/1.45. */
.site-footer .footer-links a,.site-footer .footer-links a:visited{color:#AECBDE!important;font-size:14px!important;font-weight:500!important;line-height:1.3!important;text-decoration:none!important}
.site-footer .footer-links a:hover,.site-footer .footer-links a:focus-visible{color:#FFFFFF!important}
.site-footer .footer-legal,.site-footer .footer-legal span{color:#AECBDE!important;font-size:14px!important;font-weight:300!important;line-height:1.3!important}
@media (max-width:760px){
  .site-footer .footer-links a{line-height:1.5!important}
  .site-footer .footer-legal,.site-footer .footer-legal span{font-weight:500!important;line-height:1.5!important}
}
@media (max-width:700px){
  .site-footer .footer-links a{font-size:16px!important;line-height:1.3!important}
  .site-footer .footer-legal,.site-footer .footer-legal span{font-size:13px!important;line-height:1.45!important}
}

/* 2026-09-29 (Ron): Sitemap / Privacy policy read as links: no underline at rest; on hover/focus the text
   turns white and a 1px sky underline draws in from the left (revised same day per Ron).
   Applies to both footers (global 844 and the Contact page's 989), which share .site-footer. */
.site-footer .footer-links--legal a{
  display:inline-block!important;padding-bottom:2px!important;
  background-image:linear-gradient(90deg,#32c0e9,#32c0e9)!important;background-repeat:no-repeat!important;
  background-size:0 1px!important;background-position:0 100%!important;
  transition:background-size .35s cubic-bezier(.22,1,.36,1),color .25s ease!important;
}
.site-footer .footer-links--legal a:hover,
.site-footer .footer-links--legal a:focus-visible{color:#FFFFFF!important;background-size:100% 1px!important}
@media (prefers-reduced-motion:reduce){.site-footer .footer-links--legal a{transition:none!important}}

/* 2026-10-09 DWR-509: on phones the copyright line is two balanced lines ("Copyright © YEAR Atimi Software Inc." / "All rights reserved.") instead of
   wrapping with 'reserved.' alone. ~354px of text vs ~304-334px available at 13px. One line above 760px. */
@media (max-width:760px){.site-footer .footer-legal .footer-legal__line{display:block}}
