/* ==========================================================================
   SNATEK site styles - part 5: contact + Forminator form, footer,
   back-to-top, assessment pop-up, reveal and reduced motion
   ========================================================================== */
.e-con.sn-contact__grid{display:grid;grid-template-columns:5fr 7fr;gap:clamp(2rem,4.5vw,3.5rem);align-items:start}
@media(max-width:1000px){.e-con.sn-contact__grid{grid-template-columns:1fr}}
.e-con.sn-contact__copy{display:block}
.sn-contact__cards{display:grid;gap:1rem;margin-top:2rem}
.sn-contact-card{display:flex;gap:1.1rem;align-items:flex-start;padding:1.4rem;background:#fff;border:1px solid var(--sn-line);border-radius:var(--sn-r-sm);transition:border-color .25s var(--sn-ease),transform .25s var(--sn-ease),box-shadow .25s var(--sn-ease)}
.sn-contact-card:hover{border-color:var(--sn-electric);transform:translateY(-3px);box-shadow:var(--sn-shadow-sm)}
.sn-contact-card__icon{width:46px;height:46px;flex:none;display:grid;place-items:center;color:var(--sn-link);background:rgba(24,175,230,.1);clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px)}
.sn-contact-card__icon svg{width:20px;height:20px}
.sn-contact-card b{display:block;font:700 14px/1.3 var(--sn-ff-display);color:var(--sn-ink);margin-bottom:.35rem}
.sn-contact-card a,.sn-contact-card p{color:var(--sn-muted);font-size:14.5px;display:block;line-height:1.6;margin:0;text-decoration:none}
.sn-contact-card a:hover{color:var(--sn-link)}

.e-con.sn-form,.sn-form{padding:clamp(1.75rem,3.5vw,2.5rem);background:#fff;border:1px solid var(--sn-line);border-radius:var(--sn-r);box-shadow:var(--sn-shadow)}
.sn-form__title,.elementor .sn-form__title .elementor-heading-title{font:700 1.2rem/1.3 var(--sn-ff-display);color:var(--sn-ink)}
.sn-form__title{margin-bottom:.35rem !important}
.sn-form__sub,.elementor .sn-form__sub p{color:var(--sn-muted);font-size:14px}
.sn-form__sub{margin-bottom:1.4rem !important}
/* field look for Forminator (design style "None") */
.sn-form .forminator-ui.forminator-custom-form{margin:0 !important;padding:0 !important;font-family:var(--sn-ff-body) !important}
.sn-form .forminator-row{display:flex;flex-wrap:wrap;gap:0 1.15rem;margin:0 !important}
.sn-form .forminator-col{flex:1 1 0;min-width:0;padding:0 !important;margin:0 0 1.15rem !important}
.sn-form .forminator-col-12{flex-basis:100%}
.sn-form .forminator-row-last .forminator-col{margin-bottom:0 !important}
@media(max-width:640px){.sn-form .forminator-row{flex-direction:column}.sn-form .forminator-col{flex:none;width:100%}}
.sn-form .forminator-field{margin:0 !important;padding:0 !important}
.sn-form label,.sn-form .forminator-label{display:block;font:600 14px/1.4 var(--sn-ff-body) !important;color:var(--sn-ink) !important;margin:0 0 .5rem !important;padding:0 !important}
.sn-form .forminator-required{color:var(--sn-red) !important;margin-left:.15rem}
.sn-form input[type=text],.sn-form input[type=email],.sn-form input[type=tel],.sn-form input[type=number],.sn-form select,.sn-form textarea{
  width:100% !important;max-width:100% !important;min-height:52px;padding:.85rem 1rem !important;box-sizing:border-box;
  background-color:var(--sn-tint) !important;border:1.5px solid var(--sn-line) !important;border-radius:var(--sn-r-xs) !important;box-shadow:none !important;
  font:400 15.5px/1.5 var(--sn-ff-body) !important;color:var(--sn-ink) !important;
  transition:border-color .2s var(--sn-ease),background-color .2s var(--sn-ease),box-shadow .2s var(--sn-ease) !important;
}
.sn-form textarea{min-height:132px !important;resize:vertical}
.sn-form select{cursor:pointer;-webkit-appearance:none;appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%234A5C66' stroke-width='2' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") !important;
  background-repeat:no-repeat !important;background-position:right 1rem center !important;background-size:12px !important;padding-right:2.75rem !important}
.sn-form input:hover,.sn-form select:hover,.sn-form textarea:hover{border-color:#C2D4DE !important}
.sn-form input:focus,.sn-form select:focus,.sn-form textarea:focus{outline:none !important;background-color:#fff !important;border-color:var(--sn-deep) !important;box-shadow:0 0 0 4px rgba(24,175,230,.16) !important}
.sn-form .forminator-description{display:block;margin-top:.45rem !important;font-size:13px !important;color:var(--sn-muted) !important}
.sn-form .forminator-error-message{display:block;margin-top:.45rem !important;font:500 13.5px/1.4 var(--sn-ff-body) !important;color:#A01829 !important;background:none !important;padding:0 !important}
.sn-form .forminator-has_error input,.sn-form .forminator-has_error select,.sn-form .forminator-has_error textarea{border-color:var(--sn-red) !important;background-color:#FFF7F8 !important}
.sn-form .forminator-button-submit,.sn-form button[type=submit]{
  display:inline-flex !important;align-items:center;justify-content:center;gap:.6rem;min-height:52px;padding:.9rem 1.7rem !important;margin:.5rem 0 0 !important;
  background:var(--sn-deep) !important;color:#fff !important;border:2px solid var(--sn-deep) !important;border-radius:var(--sn-r-xs) !important;
  font:600 15px/1 var(--sn-ff-body) !important;cursor:pointer;box-shadow:none !important;width:auto !important;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);
  transition:transform .22s var(--sn-ease),background-color .22s var(--sn-ease) !important}
.sn-form .forminator-button-submit::after{content:"";width:15px;height:15px;background:currentColor;
  -webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m9 18 6-6-6-6' fill='none' stroke='%23000' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") center/contain no-repeat;
  transition:transform .22s var(--sn-ease)}
.sn-form .forminator-button-submit:hover,.sn-form .forminator-button-submit:focus{transform:translateY(-3px);background:var(--sn-link) !important;border-color:var(--sn-link) !important;color:#fff !important}
.sn-form .forminator-button-submit:hover::after{transform:translateX(3px)}
.sn-form .forminator-response-message{display:none;margin:0 0 1.35rem !important;padding:1rem 1.15rem !important;border-radius:var(--sn-r-xs) !important;font-size:14.5px}
/* Forminator keeps an empty, hidden message box in the form; show it only while it holds a message */
.sn-form .forminator-response-message.forminator-show{display:block}
/* the error summary Forminator writes for screen readers stays readable to them, invisible on screen */
.sn-form .forminator-response-message.forminator-accessible:not(.forminator-show){display:block;position:absolute !important;width:1px;height:1px;padding:0 !important;margin:-1px !important;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0 !important}
.sn-form .forminator-response-message.forminator-loading{background:var(--sn-tint) !important;border:1.5px solid var(--sn-line) !important;border-left:4px solid var(--sn-electric) !important;color:var(--sn-ink) !important}
.sn-form .forminator-response-message.forminator-success{background:#EFFAF3 !important;border:1.5px solid #B9E5CB !important;border-left:4px solid #1F9254 !important;color:#12603A !important}
.sn-form .forminator-response-message.forminator-error{background:#FFF5F6 !important;border:1.5px solid #F2C4CA !important;border-left:4px solid var(--sn-red) !important;color:#8D1524 !important}
.sn-form .forminator-response-message p{margin:0 !important;color:inherit !important}
.sn-form .forminator-response-message ul{margin:.35rem 0 0 1.1rem !important;list-style:disc}
.sn-form__note,.elementor .sn-form__note p{font-size:13px;color:var(--sn-muted);max-width:44ch}
.sn-form__note{margin-top:1rem !important}

/* ==========================================================================
   Footer
   ========================================================================== */
.e-con.sn-footer,.sn-footer{background:var(--sn-panel);color:#A4B8C6;padding-block:clamp(3rem,6vw,4.5rem) 0}
.sn-footer__grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1.35fr;gap:clamp(2rem,4vw,3rem)}
@media(max-width:980px){.sn-footer__grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.sn-footer__grid{grid-template-columns:1fr}}
.sn-footer h2,.sn-footer h3{color:#fff;font:700 1rem/1.3 var(--sn-ff-display);margin:0 0 1.25rem;letter-spacing:0}
.sn-footer__logo,.sn-footer img.sn-footer__logo{display:block;height:36px;width:auto;max-width:none;margin-bottom:1.25rem;background:#fff;padding:.5rem .7rem;border-radius:var(--sn-r-xs);box-sizing:content-box}
.sn-footer p{font-size:14.5px;line-height:1.7;color:#A4B8C6;margin:0}
.sn-footer ul{margin:0;padding:0;list-style:none}
.sn-footer__links li{margin-bottom:.7rem}
.sn-footer__links a{color:#A4B8C6;font-size:14.5px;text-decoration:none;transition:color .2s var(--sn-ease),padding-left .2s var(--sn-ease)}
.sn-footer__links a:hover{color:var(--sn-electric);padding-left:5px}
.sn-footer__contact li{display:flex;gap:.8rem;align-items:flex-start;margin-bottom:1rem;font-size:14.5px}
.sn-footer__contact svg{width:16px;height:16px;color:var(--sn-electric);flex:none;margin-top:.28rem}
.sn-footer__contact a{color:#A4B8C6;text-decoration:none}
.sn-footer__contact a:hover{color:var(--sn-electric)}
.sn-socials{display:flex;gap:.6rem;margin-top:1.5rem}
.sn-socials a{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--sn-r-xs);background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.12);color:#CBD8E1;
  transition:background-color .25s var(--sn-ease),color .25s var(--sn-ease),transform .25s var(--sn-ease),border-color .25s var(--sn-ease)}
.sn-socials a:hover{background:var(--sn-electric);border-color:var(--sn-electric);color:#06212E;transform:translateY(-3px)}
.sn-socials svg{width:17px;height:17px}
.sn-footer__bar{margin-top:clamp(2.5rem,5vw,3.5rem);padding-block:1.6rem;border-top:1px solid rgba(255,255,255,.1);display:flex;flex-wrap:wrap;gap:.75rem 2rem;align-items:center;justify-content:space-between;font-size:13.5px}
.sn-footer__bar p{font-size:13.5px}
.sn-footer__bar a{color:#A4B8C6;text-decoration:none}
.sn-footer__bar a:hover{color:var(--sn-electric)}

/* ==========================================================================
   Back to top (bottom-left)
   ========================================================================== */
.sn-totop,.sn-totop:hover,.sn-totop:focus{background:linear-gradient(150deg,var(--sn-electric),var(--sn-deep));color:#fff;border:none}
.sn-totop{position:fixed;left:1.5rem;bottom:1.5rem;z-index:90;width:52px;height:52px;display:grid;place-items:center;border-radius:50%;padding:0;cursor:pointer;
  box-shadow:0 10px 30px rgba(22,126,172,.42),0 2px 6px rgba(14,42,56,.2);
  opacity:0;visibility:hidden;transform:translateY(14px) scale(.86);
  transition:opacity .32s var(--sn-ease),visibility .32s var(--sn-ease),transform .32s var(--sn-ease),box-shadow .28s var(--sn-ease)}
.sn-totop.is-shown{opacity:1;visibility:visible;transform:translateY(0) scale(1)}
.sn-totop:hover{transform:translateY(-4px) scale(1.06);box-shadow:0 18px 40px rgba(22,126,172,.5)}
.sn-totop svg{width:18px;height:18px}
.sn-totop .sn-totop__ring{position:absolute;inset:-4px;width:calc(100% + 8px);height:calc(100% + 8px);transform:rotate(-90deg)}
.sn-totop .sn-totop__ring circle{fill:none;stroke:rgba(24,175,230,.35);stroke-width:2.5}
.sn-totop .sn-totop__ring .bar{stroke:var(--sn-electric);stroke-dasharray:100;stroke-dashoffset:100}
@media(max-width:768px){.sn-totop{left:1rem;bottom:1rem;width:46px;height:46px}}

/* ==========================================================================
   Assessment pop-up (exit intent or time on page)
   ========================================================================== */
.sn-popup{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:1rem;visibility:hidden;opacity:0;transition:opacity .3s var(--sn-ease),visibility .3s var(--sn-ease)}
.sn-popup.is-open{visibility:visible;opacity:1}
.sn-popup__scrim{position:absolute;inset:0;background:rgba(9,28,38,.62);backdrop-filter:blur(3px)}
.sn-popup__card{position:relative;width:min(560px,100%);max-height:calc(100dvh - 2rem);overflow:auto;border-radius:var(--sn-r-lg);
  background:linear-gradient(158deg,var(--sn-panel-2),var(--sn-panel));color:#C3D4DE;box-shadow:0 40px 90px rgba(0,0,0,.4);
  padding:clamp(1.75rem,4vw,2.6rem);transform:translateY(18px) scale(.97);transition:transform .45s var(--sn-ease);font-family:var(--sn-ff-body)}
.sn-popup.is-open .sn-popup__card{transform:none}
.sn-popup__card::before{content:"";position:absolute;inset:0;pointer-events:none;border-radius:inherit;
  background-image:linear-gradient(rgba(255,255,255,.04) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.04) 1px,transparent 1px);background-size:36px 36px;
  -webkit-mask-image:radial-gradient(circle at 85% 10%,#000,transparent 70%);mask-image:radial-gradient(circle at 85% 10%,#000,transparent 70%)}
.sn-popup__card > *{position:relative}
.sn-popup__body .elementor-element{width:auto;max-width:100%}
.sn-popup__close,.sn-popup__close:focus{position:absolute;top:.9rem;right:.9rem;width:42px;height:42px;display:grid;place-items:center;padding:0;border-radius:var(--sn-r-xs);
  background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);color:#fff;cursor:pointer;z-index:2}
.sn-popup__close:hover{background:rgba(255,255,255,.16);color:#fff}
.sn-popup__close svg{width:16px;height:16px}
.sn-popup__mark{display:inline-grid;place-items:center;width:54px;height:54px;margin-bottom:1.1rem;color:var(--sn-electric);background:rgba(24,175,230,.14);
  clip-path:polygon(11px 0,100% 0,100% calc(100% - 11px),calc(100% - 11px) 100%,0 100%,0 11px)}
.sn-popup__mark svg{width:26px;height:26px}
.sn-popup .sn-eyebrow{margin-bottom:.6rem !important}
.sn-popup h2,.sn-popup .sn-popup__title .elementor-heading-title{color:#fff;font:800 clamp(1.45rem,3.4vw,1.9rem)/1.15 var(--sn-ff-display);letter-spacing:-.02em;margin:0}
.sn-popup .sn-popup__title{margin:0 0 .8rem !important}
.sn-popup p{font-size:15.5px;line-height:1.65;margin:0 0 1.2rem;color:#C3D4DE}
.sn-popup ul{display:grid;gap:.55rem;margin:0 0 1.6rem;padding:0;list-style:none}
.sn-popup li{display:flex;gap:.65rem;align-items:flex-start;font-size:14.5px;color:#DCE8EF}
.sn-popup li svg{width:16px;height:16px;flex:none;margin-top:.22rem;color:var(--sn-electric)}
.sn-popup__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.sn-popup__cta{display:inline-flex;align-items:center;gap:.6rem;min-height:52px;padding:.9rem 1.6rem;background:var(--sn-electric);color:#06212E !important;border:0;
  font:600 15px/1 var(--sn-ff-body);cursor:pointer;border-radius:var(--sn-r-xs);text-decoration:none;
  clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px);transition:background-color .22s var(--sn-ease),transform .22s var(--sn-ease)}
.sn-popup__cta:hover{background:var(--sn-electric-light);transform:translateY(-2px)}
.sn-popup__cta svg{width:15px;height:15px}
.sn-popup__later,.sn-popup__later:hover,.sn-popup__later:focus{background:none;border:0;padding:.6rem .4rem;color:#9BB2C0;font:500 14px/1 var(--sn-ff-body);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.sn-popup__later:hover{color:#fff}
.sn-popup-src{display:none !important}
.elementor-editor-active .sn-popup-src{display:flex !important;background:var(--sn-panel);padding:2rem;margin:2rem auto;max-width:600px;border-radius:var(--sn-r-lg)}

/* ==========================================================================
   Reveal + reduced motion
   ========================================================================== */
.sn-js .sn-reveal{opacity:0;transform:translateY(24px);transition:opacity .65s var(--sn-ease),transform .65s var(--sn-ease)}
.sn-js .sn-reveal.is-in{opacity:1;transform:none}
.elementor-editor-active .sn-reveal{opacity:1 !important;transform:none !important}

@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms !important;animation-iteration-count:1 !important;transition-duration:.001ms !important}
  .sn-js .sn-reveal{opacity:1;transform:none}
  .sn-hero__title .mark::after{transform:scaleX(1)}
  .sn-hero__title.is-split .sn-w > span{transform:none}
  .sn-marquee__track{animation:none;transform:none}
  .sn-about__glow{opacity:1;transform:none}
  .sn-cursor-dot,.sn-cursor-ring{display:none}
  .sn-about__shot{transform:none}
  .sn-shot__grid,.sn-shot__scan,.sn-shot__bloom,.sn-shot__node,.sn-shot__reticle span,.sn-about__inset-body,.sn-about__inset-body::after,.sn-about__badge::before{animation:none}
  .sn-meter__fill{transition:none}
}
