.button,.nav-cta,.action{clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px));transition:transform .2s ease,background .2s ease}.button:hover,.nav-cta:hover,.action:hover{transform:translateY(-3px);background:#0a72d1}.nav-dropdown{position:relative}.products-toggle{border:0;background:transparent;color:var(--ink);font:14px Arial,Helvetica,sans-serif;padding:10px 0;cursor:pointer}.products-toggle span{display:inline-block;margin-left:4px;color:var(--blue);transition:transform .2s}.products-menu{position:absolute;z-index:20;top:calc(100% + 14px);left:-18px;width:265px;padding:10px;background:#fff;box-shadow:0 15px 35px #07192d26;border-top:2px solid var(--blue);opacity:0;visibility:hidden;transform:translateY(10px);transition:.2s}.products-menu a{display:block!important;padding:10px 12px;color:var(--ink)!important}.products-menu a:hover{background:#f1f6fb;color:var(--blue)!important}.products-menu .all-products{margin-top:5px;border-top:1px solid var(--line);padding-top:14px;color:var(--blue)!important;font-weight:700}.nav-dropdown:hover .products-menu,.nav-dropdown.open .products-menu{opacity:1;visibility:visible;transform:none}.nav-dropdown:hover .products-toggle span,.nav-dropdown.open .products-toggle span{transform:rotate(180deg)}.hero-carousel{position:relative}.hero-frame{position:absolute;inset:0;margin:0;opacity:0;transition:opacity .65s ease;overflow:hidden}.hero-frame.is-active{opacity:1;z-index:1}.hero-frame img{width:100%;height:100%;object-fit:cover;animation:hero-zoom 10s ease-in-out infinite alternate}.hero-frame figcaption{position:absolute;z-index:2;bottom:34px;left:34px;background:#08131f;color:#fff;padding:20px 24px;min-width:195px;clip-path:polygon(0 0,calc(100% - 15px) 0,100% 15px,100% 100%,15px 100%,0 calc(100% - 15px))}.hero-frame figcaption b{display:block;font-size:30px;line-height:1}.hero-frame figcaption span{font-size:12px;color:#aab9c8}.carousel-control{position:absolute;z-index:4;top:50%;width:58px;height:76px;border:0;background:#08131fc9;color:#fff;font-size:55px;font-weight:200;line-height:1;cursor:pointer;transform:translateY(-50%);transition:background .2s}.carousel-control:hover{background:var(--blue)}.previous{left:0}.next{right:0}.carousel-dots{position:absolute;z-index:4;bottom:22px;right:25px;display:flex;gap:8px}.carousel-dots button{width:28px;height:3px;border:0;background:#ffffff77;cursor:pointer}.carousel-dots button.is-active{background:#fff}.back-to-top{position:fixed;z-index:30;right:28px;bottom:28px;width:58px;height:58px;border:0;border-radius:16px;background:#111;color:#fff;font-size:30px;cursor:pointer;opacity:0;visibility:hidden;transform:translateY(14px);transition:.2s;box-shadow:0 10px 30px #0003}.back-to-top.show{opacity:1;visibility:visible;transform:none}.back-to-top:hover{background:var(--blue)}@media(max-width:850px){.nav-dropdown{width:100%}.products-toggle{font-size:14px}.products-menu{position:static;width:100%;margin-top:4px;box-shadow:none;border:1px solid var(--line);display:none;opacity:1;visibility:visible;transform:none}.nav-dropdown.open .products-menu{display:block}.carousel-control{width:45px;height:56px;font-size:40px}.hero-frame figcaption{left:18px;bottom:18px}.back-to-top{right:18px;bottom:18px}}

/* React Bits Specular Button behaviour, adapted with a lightweight canvas.
   Two continuous, opposing streaks follow the pointer within 250px. */
.specular-button{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
}
.specular-button__canvas{
  position:absolute;
  z-index:2;
  inset:0;
  display:block;
  width:100%;
  height:100%;
  pointer-events:none;
  clip-path:inherit;
}

/* The form submit is a native <button>; remove its default grey bevel so the
   pointer-following specular streak is the only visible edge treatment. */
.enquiry-form button.button{
  border:0;
  outline:0;
  box-shadow:none;
  appearance:none;
  -webkit-appearance:none;
}
.enquiry-form button.button:focus-visible{
  outline:3px solid #ffcf4a;
  outline-offset:3px;
}

.form-toast{
  position:fixed;
  z-index:1000;
  top:28px;
  left:50%;
  display:flex;
  align-items:center;
  gap:14px;
  width:min(520px,calc(100vw - 32px));
  padding:17px 20px;
  border:1px solid rgba(124,255,181,.42);
  background:rgba(8,27,20,.97);
  color:#f4fff8;
  font:700 15px/1.45 Arial,Helvetica,sans-serif;
  box-shadow:0 18px 55px rgba(0,0,0,.45),0 0 35px rgba(51,207,119,.14);
  opacity:0;
  visibility:hidden;
  transform:translate(-50%,-18px);
  transition:opacity .24s ease,transform .24s ease,visibility .24s;
  clip-path:polygon(0 0,calc(100% - 13px) 0,100% 13px,100% 100%,13px 100%,0 calc(100% - 13px));
}
.form-toast.is-visible{opacity:1;visibility:visible;transform:translate(-50%,0)}
.form-toast__icon{display:grid;place-items:center;flex:0 0 30px;height:30px;border-radius:50%;background:#25bd6b;color:#fff;font-size:18px}
.form-toast--error{border-color:rgba(255,112,112,.5);background:rgba(43,13,13,.97)}
.form-toast--error .form-toast__icon{background:#d84a4a}
@media(max-width:600px){.form-toast{top:14px;padding:14px 16px;font-size:14px}}
